_服役新节点,退役旧节点,多目录配置。+_HDFS2.x的新特性
服役新的节点
1、首先克隆一个新的虚拟机,里面的hadoop等环境都配好了
之后修改ip通过 root进行登录,在原本好的虚拟机上进行分发操作
之后再发java
发环境变量
在新的虚拟机上进行:
这是重新运行环境变量
之后进入hadoop删除data和logs让他变成一个全新的机器
就会发现
datanode会主动Namenode请求。这样服役新的节点就做完了
然后就是退役旧的节点:(一下的名字可以改成whitelist和blacklist)
6.5.1 添加白名单
添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。
配置白名单的具体步骤如下:
(1)在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts文件
[ hadoop]$ pwd
/opt/module/hadoop-2.7.2/etc/hadoop
[ hadoop]$ touch dfs.hosts
[ hadoop]$ vi dfs.hosts
添加如下主机名称(不添加hadoop105)
hadoop102
hadoop103
hadoop104
(2)在NameNode的hdfs-site.xml配置文件中增加dfs.hosts属性
<property>
<name>dfs.hosts</name>
<value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts</value>
</property>
(3)配置文件分发
[ hadoop]$ xsync hdfs-site.xml
(4)刷新NameNode
[ hadoop-2.7.2]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
(5)更新ResourceManager节点
[ hadoop-2.7.2]$ yarn rmadmin -refreshNodes
17/06/24 14:17:11 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.1.103:8033
(6)在web浏览器上查看
4. 如果数据不均衡,可以用命令实现集群的再平衡
[ sbin]$ ./start-balancer.sh
starting balancer, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-balancer-hadoop102.out
Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved
6.5.2 黑名单退役
在黑名单上面的主机都会被强制退出。
1.在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts.exclude文件
[ hadoop]$ pwd
/opt/module/hadoop-2.7.2/etc/hadoop
[ hadoop]$ touch dfs.hosts.exclude
[ hadoop]$ vi dfs.hosts.exclude
添加如下主机名称(要退役的节点)
hadoop105
2.在NameNode的hdfs-site.xml配置文件中增加dfs.hosts.exclude属性
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts.exclude</value>
</property>
3.刷新NameNode、刷新ResourceManager
[ hadoop-2.7.2]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
[ hadoop-2.7.2]$ yarn rmadmin -refreshNodes
17/06/24 14:55:56 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.1.103:8033
4. 检查Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点,如图3-17所示
图3-17 退役中
- 等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役,如图3-18所示
图3-18 已退役
[ hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop datanode
stopping datanode
[ hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
stopping nodemanager
6. 如果数据不均衡,可以用命令实现集群的再平衡
[ hadoop-2.7.2]$ sbin/start-balancer.sh
starting balancer, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-balancer-hadoop102.out
Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved
注意:不允许白名单和黑名单中同时出现同一个主机名称。
HDFS2的新特性:
小文件的归档操作:
3.案例实操
(1)需要启动YARN进程
[ hadoop-2.7.2]$ start-yarn.sh
(2)归档文件
把/user/atguigu/input目录里面的所有文件归档成一个叫input.har的归档文件,并把归档后文件存储到/user/atguigu/output路径下。
[ hadoop-2.7.2]$ bin/hadoop archive -archiveName input.har –p /user/atguigu/input /user/atguigu/output
(3)查看归档
[ hadoop-2.7.2]$ hadoop fs -lsr /user/atguigu/output/input.har
[ hadoop-2.7.2]$ hadoop fs -lsr har:///user/atguigu/output/input.har
(4)解归档文件
[ hadoop-2.7.2]$ hadoop fs -cp har:/// user/atguigu/output/input.har/* /user/atguigu