随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。
1、环境准备
(1)克隆一台虚拟机
(2)修改ip地址和主机名称
(3)SSH免密
(4)删除克隆虚拟机里面HDFS文件系统留存的文件
2、在namenode的/opt/module/hadoop-2.8.2/etc/hadoop目录下创建dfs.hosts文件
[victor@node1 ~]$ cd /opt/module/hadoop-2.8.2/etc/hadoop
[victor@node1 hadoop]$ pwd
/opt/module/hadoop-2.8.2/etc/hadoop
[victor@node1 hadoop]$ touch dfs.hosts
[victor@node1 hadoop]$ vi dfs.hosts
#添加如下主机名称(包含新服役的节点)
node1
node2
node3
node4
尖叫提示:一般在执行命令的主节点上添加即可,建议分发一下
3、在namenode的hdfs-site.xml配置文件中增加dfs.hosts属性
<property>
<name>dfs.hosts</name>
<value>/opt/module/hadoop-2.8.2/etc/hadoop/dfs.hosts</value>
</property>
4、刷新namenode
[victor@node1 hadoop-2.8.2]$ bin/hdfs dfsadmin -refreshNodes
Refresh nodes successful
5、更新resourcemanager节点
[victor@node1 hadoop-2.8.2]$ bin/yarn rmadmin -refreshNodes
6、在namenode的slaves文件中增加新主机名称
[victor@node1 ~]$ cd /opt/module/hadoop-2.8.2/etc/hadoop
[victor@node1 hadoop]$ pwd
/opt/module/hadoop-2.8.2/etc/hadoop
[victor@node1 hadoop]$ vim slaves
node1
node2
node3
node4
//尖叫提示:分发
7、单独命令启动新的数据节点和节点管理器
[victor@node4 hadoop-2.8.2]$ sbin/hadoop-daemon.sh start datanode
[victor@node4 hadoop-2.8.2]$ sbin/yarn-daemon.sh start nodemanager
8、在web浏览器上检查是否ok
http://node1:50070
9、如果数据不均衡,可以用命令实现集群的负载均衡
[victor@node1 sbin]$ ./start-balancer.sh