1、流程:配置阶段:配置一系列文件在所有 slave节点上拷贝 master和 JobTracker的公钥在 JobTracker节点上拷贝 master的公钥运行阶段:启动 hadoop跑 wordcount集群搭建准备:至少两台已完成单节点搭建的机器(此例为两台,IP 分别是 192.168.1.10与 192.168.1.11,其中 10为 master)配置阶段:1、配置一系列文件(所有节点上)1、配置 etc下的 hosts文件sudo gedit /etc/hosts(注:打开后将里面的内容全部删除,不删除的话启动时会出现所有 slave启动正常,但是 master上的 DataNod
2、e为 0,导致系统不能正常运转的情况,全部删除以后添加所有节点的 IP和标识符,格式如下192.168.1.10 master192.168.1.11 slave标识符可以随便写,主要是起到一个映射作用)2、进入 hadoop目录下,配置 conf下的 masters文件cd /usr/local/hadoopsudo gedit conf/masters(打开后将里面内容清空,然后添加“master”或者master的 IP“192.168.1.10”,此处即是 hosts中配置的映射,填 master或者直接填 IP都是一样的)3、配置 conf下的 slaves文件sudo gedit
3、conf/slaves(打开后将里面内容清空,然后添加“slave”或者 slave的 IP“192.168.1.11”,原因同上)4、配置 conf下的 core-site.xml文件sudo gedit conf/core-site.xml(因为已完成单节点配置,因此只需要修改就行了。打开后将第一个标签中的 localhost改为“master”或者 master的 IP,如下Xml代码 1. 2. fs.default.name 3. hdfs:/master:9000 4. 第二个 标签,即包含dfs.replication一行的那个,其中的“”表示 文件上传到 dfs上时的备份个数,
4、此数值不能大于 slave即 datanode的个数)5、配置 conf下的 hdfs-site.xml文件(此配置在slave节点上可有可无)sudo gedit conf/hdfs-site.xml(打开后在空的 中添加如下配置Xml代码 1. 2. dfs.replication 3. 1 4. 5. 6. 7. dfs.name.dir 8. /home/hadoop/hdfs/name 9. 10. 11. 12. dfs.data.dir 13. /home/hadoop/hdfs/data 14. 6、配置 conf下的 mapred-site.xml文件sudo gedit c
5、onf/mapred-site.xml(打开后将标签里的 localhost改为 JobTracker的 IP,因为本例中 JobTracker也是 master本身,所以将 localhost改为“master”或 master的 IP)2、在所有 slave节点上拷贝 master和 JobTracker的公钥1、拷贝公钥scp hadoopmaster:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pubscp hadoopmaster:/home/hadoop/.ssh/id_rsa.pub /home/haddop
6、/.ssh/jobtracker_rsa.pub(注:因为本例中 master和 JobTracker是同一台机器,所以相当于在 master上拷了两次公钥)2、将拷贝的公钥添加到信任列表cat /home/hadoop/.ssh/master_rsa.pub /home/hadoop/.ssh/authorized_keyscat /home/hadoop/.ssh/jobtracker_rsa.pub /home/hadoop/.ssh/authorized_keys3、在 JobTracker上拷贝 master的公钥1、拷贝公钥scp hadoopmaster:/home/hadoop
7、/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pub(注:本例中 master和 JobTracker是同一台机器,所以相当于自己拷自己的公钥.囧)2、添加到信任列表cat /home/hadoop/.ssh/master_rsa.pub /home/hadoop/.ssh/authorized_keys运行阶段:1、启动 hadoop1、在所有节点上删除/home/hadoop/下的 tmp文件夹(包括 master节点)sudo rm -r /home/hadoop/tmp(注:tmp 文件夹内部存放有 NameNode的 ID信息,如果ID不
8、一样的话是无法正常连接的,此处的删除操作是为了保证 ID的一致性)2、在 master上格式化 NameNodehadoop namenode -format3、启动 hadoopbin/start-all.sh4、查看各节点是否正常启动jps(此语句执行后,slave 节点中必须有 DataNode,master节点中必须有 NameNode,否则启动失败)5、查看整个系统状态hadoop dfsadmin -report(此语句执行后能显示当前连接的 slave数,即 DataNode数)2、跑 wordcount1、准备测试文件sudo echo “mu ha ha ni da ye d
9、a ye da da“ /tmp/test.txt2、将测试文件上传到 dfs文件系统hadoop dfs -put /tmp/test.txt multiTest(注:如 multiTest目录不存在的话会自动创建)3、执行 wordcounthadoop jar hadoop-mapred-examples0.21.0.jar wordcout multiTest result(注:如 result目录不存在的话会自动创建)4、查看结果hadoop dfs -cat result/part-r-00000至此集群环境搭建完毕!补充说明:网上文档中说的关于“关闭防火墙”和“关闭安全模式”,我们在实践中并未涉及到,如遇到连接不到 datanode的问题,请检查您的 hosts文件中是否最上面多出两行,如果是的话请删除,然后重新按照“运行阶段”的步骤来。