Hadoop小兵笔记【二】Hadoop分布式集群扩展实战经验,hadoop小兵实战经验


一、集群原先配置:

                  主机名sparkMaster,Ubuntu12.04-32 ,用户名Root , 内存4g    (只用于任务调度和分配,不做计算节点)

                  从机名sparkSlave1,Ubuntu12.04-32 ,用户名Root , 内存4g    (计算节点)
                  从机名sparkSlave2,Ubuntu12.04-32 ,用户名Root , 内存1.7g (计算节点)


二、扩展原因:计算数据量增大,原先的两个工作节点已不不能满足实时性的需求,由于实验室计算资源有限,故将原先的调度节点也增加为计算节点,即扩展后的sparkMaster既是调度节点也是计算节点。

三、修改配置流程:cd  /usr/local/hadoop/hadoop-2.2.0/etc/hadoop

                                    vim slaves 修改slaves文件,将原先只有sparkSlave1、sparkSlave2的内容增添sparkMaster,保存退出(对三个节点上的文件分别执行同样操作)

                                    vim hdfs-site.xml修改hdfs-site.xml文件,将dfs.replication的值由2改写成3(对三个节点上的文件分别执行同样操作)

四、格式化HDFS:cd  /usr/local/hadoop/hadoop-2.2.0/bin

                                  hadoop namenode -format

五、错误描述:启动SparkMaster成功,使用jps查看SparkMaster进程时会出现Datanode、Namenode、ResourceManager 、NodeManager、SecondaryNameNode、jps,但是使用jps查看sparkSlave1、sparkSlave2 的进程时只会短暂地出现十秒钟左右Datanode、NodeManager、jps,随后进程便会掉线,而且在访问http://SparkMaster:50070登录web控制台查看HDFS集群状况时Live Node=0,这说明Hadoop集群没有启动成功(下图为启动成功时配图):

    


六、错误分析:由于在执行hadoop格式化时namenode format会初始化一些目录和文件,这其中包括/usr/local/hadoop/hadoop-2.2.0/dfs/name/current里面的VERSION文件:

其中clusterID会在格式化时更改,而且会造成SparkMaster的clusterID和sparkSlave1、sparkSlave2的clusterID 不一致,这样就会造成Hadoop集群启动失败。

七、解决方法:在执行格式化之前,需要将所有节点中的/usr/local/hadoop/hadoop-2.2.0/dfs目录里面的内容清空,并使用./stop-all.sh停止集群,这样就能保证SparkMaster、sparkSlave1、sparkSlave2里面的clusterID都是一致的。

 

ps:作者水平有限,如有不当之处,还望读者不吝赐教!

相关内容