Hadoop调优手册(4)——HDFS集群扩容及缩容

1.添加白名单、黑名单

设置白名单和黑名单后,只有白名单上的主机节点允许访问 NameNode;不在白名单上的主机节点都会从集群中退出。在黑名单上的主机节点也会从集群中退出,黑名单一般用来退役主机节点。
同一个主机节点不能同时配置在白名单和黑名单中

* 步骤

(1)在目录/opt/module/hadoop-3.1.3/etc/hadoop下,创建文件 whitelist 和 blacklist(文件名称可自定义)。

(2)在文件 whitelist 和 blacklist 中分别写入想要添加到白名单或黑名单的主机名称。

(3)在 hdfs-site.xml 配置文件中增加 dfs.hosts 和 dfs.hosts.exclude 配置参数。


  dfs.hosts</name>
  /opt/module/hadoop-3.1.3/etc/hadoop/whitelist</value>
</property>


  dfs.hosts.exclude</name>
  /opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>

注:
dfs.hosts - 配置的是白名单的路径
dfs.hosts.exclude - 配置的是黑名单的路径

(4)将文件 whitelist 、blacklist 和 hdfs-site.xml 分发给其他节点。

(5)由于修改了配置文件 hdfs-site.xml ,所以需要重启集群。后续修改 whitelist 和 blacklist 中的主机名称后则不需要重启集群,只需刷新 NameNode 节点即可。刷新 NameNode 节点命令如下:
hdfs dfsadmin -refreshNodes

至此,白名单和黑名单添加完成。


2.服役新服务器

当集群中现有的节点的容量不能满足存储数据的需求时,就需要动态添加新的节点到集群中。

动态添加:在不重启集群的情况下添加新节点

* 步骤:

(1)首先准备一台新服务器(虚拟机的话可以拷贝集群中的一台服务器来修改,这样能减少一些重复的配置操作)。

(2)修改新服务器的IP地址和主机名称。

(3)删除拷贝过来的 Hadoop 的历史数据,data 和 logs 数据。

(4)配置新服务器和集群中其他节点的无密登录。

(5)将新服务器的主机名称添加到白名单中,并分发给其他各节点。

(6)将新服务器的主机名称添加到workers文件中,并分发给其他各节点。(这步可以不做,添加到workers文件中是为了让该节点以后可以通过 start-dfs.sh 与其他节点一起启动)

(7)启动新服务器的 DataNode。命令如下:

hdfs --daemon start datanode
yarn --daemon start nodemanager

(8)刷新 NameNode 节点。命令

至此,一台新服务器就已经动态添加到了集群中。


3.服务器间数据均衡

如果总是在某一个节点提交任务,而不在其他节点提交任务,就会导致该节点的数据量远大于其他节点。
如果服役了一台新服务器,那么新服务器上暂时没有数据,而其他节点上的数据已经快要爆满了。

上述各种情况都会导致集群中各节点上的数据量不均衡,这时就需要执行集群数据均衡命令。

* 开启数据均衡命令

sbin/start-balancer.sh -threshold 10

对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。

* 停止数据均衡命令

sbin/stop-balancer.sh

注意 :由于 HDFS 需要启动单独的 Rebalance Server 来执行 Rebalance 操作,所以尽量不要在 NameNode 上执行 start-balancer.sh,而是找一个比较空闲的节点来执行。


4.黑名单退役服务器

当我们的集群不需要太多的服务器(节点)时,可以通过黑名单来动态退役服务器。

* 步骤:

(1)默认已经创建了黑名单文件(blacklist),并配置好了黑名单文件路径。若没有请参见 1.添加白名单、黑名单

(2)将需要退役的服务器主机名称写入 blacklist。

(3)刷新 NameNode 节点。命令

(4)节点成功退役后,剩余节点可能存在数据不均衡的情况,此时可以考虑执行数据均衡命令。

* 退役流程:

(1)退役节点的状态为 decommission in progress(退役中)。此时,退役节点正在复制它的数据块到其他节点上。

(2)退役节点的状态为 decommissioned(所有数据块都复制完成),停止该节点及节点资源管理器。

注:
若退役后的剩余节点数小于副本数,则不能退役成功,需要修改副本数后才能退役。

你可能感兴趣的:(大数据,#,Hadoop,大数据,hadoop)