hadoop安装
在Apache Hadoop主页的下载页面https://hadoop.apache.org/releases.html选择版本进行下载: 下载下来的是压缩包: 将压缩包使用Xftp上传hadoop-1的/usr目录下: 执行命令:1 # tar -zxvf hadoop-2.7.7.tar.gz
1 # vim /etc/profile
1 export HADOOP_HOME=/usr/hadoop-2.7.7 2 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
1 # source /etc/profile
本地模式
本地模式只需要修改/usr/hadoop-2.7.7/etc/hadoop/hadoop-env.sh文件,设置JAVA_HOME即可。 在hadoop-1上面进行本地模式配置,在终端使用vim打开该文件:1 # vim hadoop-2.7.7/etc/hadoop/hadoop-env.sh
1 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
1 # mkdir /home/temp 2 # vim /home/temp/test.txt
1 this is a example 2 hello world hello bob hello everyone
1 # cd /usr/hadoop-2.7.7/share/hadoop/mapreduce
1 # ls -l
1 # hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /home/temp/test.txt /home/temp/mcl
1 # cat /home/temp/mcl/part-r-00000
可以看到每个单词的统计结果数据。
伪分布式模式
伪分布式模式是在单机上,模拟一个分布式的环境,具备Hadoop的所有功能。 配置文件路径:/usr/hadoop-2.7.7/etc/hadoop/ 首先配置的文件是hadoop-env.sh,与本地模式一样,配置好JAVA_HOME参数即可。 然后配置的两个文件是hdfs-site.xml和core-site.xml,这两个文件作用是配置HDFS的一些属性。 在hdfs-site.xml文件中配置(数据冗余级别设置为1): 在core-site.xml文件中配置(namenode的地址和HDFS数据保存的目录,默认是Linux的tmp目录): 其中tmp目录要手动创建:1 # mkdir /usr/hadoop-2.7.7/tmp
1 # cp mapred-site.xml.template mapred-site.xml
1 # hdfs namenode -format
1 # start-all.sh
1 # hadoop fs -mkdir /wordCountInput
1 # hadoop fs -put /home/temp/test.txt /wordCountInput
1 # hadoop fs -ls /wordCountInput
1 # hadoop jar /usr/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /wordCountInput/test.txt /wordCountOutput
1 # hadoop fs -ls /wordCountOutput
1 # hadoop fs -cat /wordCountOutput/part-r-00000
1 # stop-all.sh
完全分布式模式
是真正的分布式环境,具备生产条件。 完全分布式模式与伪分布式模式的区别就在于配置文件配置内容不同,namenode与datanode分别部署在不同的服务器上。 以下使用hadoop-1、hadoop-2和hadoop-3三台服务器搭建一个完全分布式集群,其中hadoop-1为namenode节点,其余两台为datanode节点。 在hadoop-1服务器上: 首先配置hadoop-env.sh文件,配置好JAVA_HOME参数。 然后配置hdfs-site.xml文件,将冗余级别改为3: 接下来core-site.xml文件,内容不需要修改: 接下来mapred-site.xml文件,内容不需要修改: 接下来yarn-site.xml 文件,内容不需要修改: 最后slaves文件中的localhost,改成hadoop-2和hadoop-3: 修改完成之后,将以上文件全部拷贝到hadoop-2和hadoop-3的相应目录下无需做其他修改。hadoop重置
因为之前搭建伪分布式模式时,格式化过hadoop-1的namenode,所以此处需要进行重置。 首先要删除/usr/hadoop-2.7.7/logs目录中的所有文件1 # rm -r *
1 # hdfs namenode -format