环境说明:
ip地址 用户名称 机器名称 机器角色
192.168.3.150 donny donny-Lenovo-B40-80 Master + Salve
192.168.3.167 cqb cqb-Lenovo-B40-80 Salve
Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;Salve机器配置DataNode 和TaskTracker的角色,负责分布式数据存储以及任务的执行;此处应该还有1个Master机器(备用),以防止Master服务器宕机。
注意:由于hadoop要求所有机器上hadoop的部署目录结构要求相同(因为在启动时按与主节点相同的目录启动其它任务节点),并且都有一个相同的用户名账户。参考各种文档上说的是所有机器都建立一个hadoop用户,使用这个账户来实现无密码认证。这里为了方便,分别在三台机器上都重新建立一个hadoop用户。 (强烈推荐此做法,别学穷博主)
环境配置:
修改hostname vim /etc/hostname 修改后用 hostname 检验修改成功
添加hosts vim /etc/hosts 192.168.3.150 donny-Lenovo-B40-80 192.168.3.167 cqb-Lenovo-B40-80
ssh配置:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub cqb@cqb-Lenovo-B40-80
hadoop配置:
vim /etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://donny-Lenovo-B40-80:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
vim /etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
vim /etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>donny-Lenovo-B40-80:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>donny-Lenovo-B40-80:19888</value>
</property>
</configuration>
vim /etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>donny-Lenovo-B40-80</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
vim /etc/hadoop/slaves
donny-Lenovo-B40-80
cqb-Lenovo-B40-80
把 namenode 发给 datanode
scp -r /etc/hadoop/ cqb@cqb-Lenovo-B40-80:/tmp/
启动hadoop:
在 nomenode 执行
第一次格式化 hdfs namenode -format
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode (可选)
yarn-daemon.sh start nodemanager
yarn-daemon.sh start resourcemanager
mr-jobhistory-daemon.sh start historyserver
在 datanode 执行
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
hadoop-daemon.sh start secondarynamenode(可选)
验证hadoop:
验证集群 hdfs dfs -ls / 任何一台机器都可执行
访问 192.168.3.150:50070 查看 datanode 是否健壮
发布任务 hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar wordcount /tmp/order.data /output
访问 192.168.3.150:8088 查看发布任务结果