本节书摘来异步社区《Hadoop MapReduce实战手册》一书中的第2章,第2.3节,作者: 【美】Srinath Perera , Thilina Gunarathne 译者: 杨卓荦 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.3 添加一个新的DataNode
Hadoop MapReduce实战手册
本节将展示如何在不重启整个集群的情况下将新节点添加到现有的HDFS集群中,以及增加新的节点后,如何强制HDFS重新达到平衡。
准备工作
请按照下列步骤向HDFS集群中添加DataNode节点。
- 在新节点上安装Hadoop,并且复制现有的Hadoop集群的配置文件。可以使用rsync从另一个节点复制Hadoop配置。例如:
>rsync -a <master_node_ip>:hadoop-1.0.x/conf $HADOOP_HOME/conf
- 确保Hadoop/HDFS集群的主节点可以对新节点进行SSH免密码登录。如果不打算使用bin/*.sh脚本从主节点启动/停止集群,那么可以选择SSH免登录设置。
操作步骤
下面的步骤将展示如何将新的DataNode添加到现有的HDFS集群。
- 将新节点的IP或DNS地址添加到主节点的$HADOOP_HOME/conf/slaves文件。
- 通过使用以下命令在新添加的从节点上启动DataNode进程。
>bin/hadoop-deamon.sh start datanode
技巧
也可以使用$HADOOP_HOME/bin/start-dfs.sh脚本从主节点启动新加入的从节点的DataNode守护进程。如果要向集群中添加多个新的DataNode,那么这样做会非常有益。
- 在新加的从节点上,检查$HADOOP_HOME/logs/hadoop--datanode-.log是否有任何错误信息。
前面的步骤既适用于添加新节点,又适用于重新加入的因崩溃而重新启动的节点。
更多参考
同样,你也可以添加一个新的节点到Hadoop MapReduce集群。
- 要在新节点上启动TaskTracker必须使用以下命令:
>bin/hadoop-deamon.sh start tasktracker
- 在新加的从节点上,检查$HADOOP_HOME/logs/hadoop--tasktracker-.log是否有任何错误信息。
HDFS再平衡
当您添加新节点时,HDFS不会自动重新平衡。然而,HDFS提供了一个手动调用的重新平衡(reblancer)工具。这个工具将整个集群中的数据块分布调整到一个可人工配置的百分比阈值。如果在其他现有的节点上有空间存储问题,再平衡将是非常有益的。
- 执行以下命令。可选参数-threshold指定了磁盘容量的余量百分比,用来判定一个节点的利用率是过低还是过高。一个利用不足的数据节点其利用率低`于平均利用率−阈值。过度利用的数据节点其利用率高于平均利用率+阈值。该参数设置的越小,整个集群越平衡,但会花费更多的时间进行再平衡操作。默认阈值为10%。
>bin/start-balancer.sh –threshold 15
- 再平衡操作可以通过执行bin/stop-balancer.sh命令手动停止。
- 再平衡操作的日志信息存储在$HADOOP_HOME/logs/hadoop--balancer.out文件中。