· linux系统(本篇使用的是CentOS v6.5)
· Hadoop安装包(本篇使用的是hadoop v2.6.0)
1. 1
2. 2
需要无密码登录的SSH环境(安装ssh及sshd,具体配置步骤在后面介绍)
END
1. 1
2. 2
配置SSH的无密码登录:可新建专用用户hadoop进行操作,cd命令进入所属目录下,输入以下指令(已安装ssh)
ssh-keygen -t rsa -P ""
cat .ssh/id_rsa.pub>>.ssh/authorized_keys
解释一下,第一条生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用“”空字符串表示无密码。
第二条命令将生成的密钥写入authorized_keys文件。
这时输入 ssh localhost,弹出写入提示后回车,便可无密码登录本机。同理,将authorized_keys文件 通过 scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。
3. 3
4. 4
hadoop配置过程:要实现分布式环境,配置过程是最为重要的,
这里要涉及到的配置文件有7个:
~/hadoop/etc/hadoop/hadoop-env.sh
~/hadoop/etc/hadoop/yarn-env.sh
~/hadoop/etc/hadoop/slaves
~/hadoop/etc/hadoop/core-site.xml
~/hadoop/etc/hadoop/hdfs-site.xml
~/hadoop/etc/hadoop/mapred-site.xml
~/hadoop/etc/hadoop/yarn-site.xml
之后会分别介绍各个配置的的作用和配置关键
5. 5
该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。
故在该文件中修改JAVA_HOME值为本机安装位置(如,exportJAVA_HOME=/usr/lib/jvm/java-1.7.0)
6. 6
该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。
在该文件中修改JAVA_HOME值为本机安装位置(如,exportJAVA_HOME=/usr/lib/jvm/java-1.7.0)
7. 7
8. 8
hadoop.tmp.dir
/data/hadoop-${user.name}
fs.default.name
hdfs://Master:9000
9. 9
dfs.http.address
Master:50070
dfs.namenode.secondary.http-address Master:50090
dfs.replication
1
这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;dfs.replication配置了文件块的副本数,一般不大于从机的个数。
10. 10
mapred.job.tracker
Master:9001
mapred.map.tasks
20
mapred.reduce.tasks
4
mapreduce.framework.name
yarn
mapreduce.jobhistory.address Master:10020
mapreduce.jobhistory.webapp.address Master:19888
这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,至于什么是map和reduce,可参考其它资料进行了解。
其它属性为一些进程的端口配置,均配在主机下。
11. 11
yarn.resourcemanager.address
Master:8032
yarn.resourcemanager.scheduler.address
Master:8030
yarn.resourcemanager.webapp.address
Master:8088
yarn.resourcemanager.resource-tracker.address Master:8031
yarn.resourcemanager.admin.address Master:8033
yarn.nodemanager.aux-services mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler
12. 12
将配置好的hadoop复制到其他节点
scp –r ~/hadoop hadoop@Slave1:~/
scp –r ~/hadoop hadoop@Slave2:~/
END
1. 1
2. 2
启动hdfs: ./sbin/start-dfs.sh
此时在Master上面运行的进程有:namenodesecondarynamenode
Slave1和Slave2上面运行的进程有:datanode
启动yarn: ./sbin/start-yarn.sh
此时在Master上面运行的进程有:namenodesecondarynamenode resourcemanager
Slave1和Slave2上面运行的进程有:datanodenodemanager
3. 3
检查启动结果
查看集群状态:./bin/hdfs dfsadmin–report
查看文件块组成: ./bin/hdfsfsck / -files -blocks
查看HDFS: http://192.168.101.248:50070(主机IP)
查看RM: http:// 192.168.101.248:8088(主机IP)
正确情况如图显示
END
· 根目录为不存在的文件夹时,需自行创建。
· 启动过程使用端口较多,若无其它原因,需关闭防火墙以正常启动。
· 重新格式化namenode时,需先删除各节点的data文件