HDFS新增节点

第一步:由纯净(没有进行过太多操作的)的虚拟机克隆出一台新的虚拟机,作为新的节点

第二步:修改新节点的mac地址和ip地址
修改mac地址命令
vim /etc/udev/rules.d/70-persistent-net.rules

修改ip地址 删除mac地址行
vim /etc/sysconfig/network-scripts/ifcfg-eth0

第三步:关闭防火墙,开启不自启
关闭防火墙
service iptables stop
开启不自启
chkconfig iptables off

第四步:关闭selinux,更改主机名
关闭selinux:
vim /etc/selinux/config

更改主机名
vim /etc/sysconfig/network

第五步:四台机器都要添加hosts文件
在主节点上修改文件 ip对应的主机名
vim /etc/hosts

然后远程拷贝到其他三台机器上
例: scp /etc/hosts node02:/etc/

第六步:node04服务器关机重启 并生成公钥私钥
生成公钥私钥
ssh-keygen +三个回车

第七步:实现每台机器都能免密登录另三台
在node01主节点上实现 免密登录node04
ssh-copy-id node04

把主节点:node01的.ssh远程拷贝到另外三台上
例:第一台 scp -r .ssh node02:

第八步:node04安装jdk和hadoop
远程拷贝node01的jdk和hadoop的安装包到到node04上
scp -r /export node04:/
拷贝java环境
scp /etc/profile.d/java.sh /etc/profile.d/
拷贝hadoop环境
scp /etc/profile.d/hdoop.sh /etc/profile.d/
更新环境 source /etc/profile
java -version 查看jdk的版本如果是1.8.0更新完成

否则删除 rm-rf /etc/alternatives/java
更新软链接 ln -s /export/install/jdk1.8.0_144/bin/java /etc/alternatives/java

服役新节点具体操作
第一步:创建dfs.hosts文件

在node01也就是namenode所在的机器的/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop目录下创建dfs.hosts文件
 [root@node01 Hadoop]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
 [root@node01 Hadoop]# touch dfs.hosts
 [root@node01 Hadoop]# vim dfs.hosts
 添加如下主机名称(包含新服役的节点)
 node01
 node02
 node03
 node04


第二步:node01编辑hdfs-site.xml添加以下配置
在namenode的hdfs-site.xml配置文件中增加dfs.hosts属性

node01执行以下命令
 cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
 在文件:vim hdfs-site.xml

 dfs.hosts


/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/dfs.hosts

第三步:刷新namenode

node01执行以下命令刷新namenode
 [root@node01 Hadoop]# hdfs dfsadmin -refreshNodes
 Refresh nodes successful


第四步:更新resourceManager节点

node01执行以下命令刷新resourceManager
 [root@node01 Hadoop]# yarn rmadmin -refreshNodes


19/03/16 11:19:47 INFO client.RMProxy: Connecting to ResourceManager at node01/192.168.52.100:8033
第五步:namenode的slaves文件增加新服务节点主机名称
node01编辑slaves文件,并添加新增节点的主机,更改完后,slaves文件不需要分发到其他机器上面去
node01执行以下命令编辑slaves文件

cd /export/servers/Hadoop-2.6.0-cdh5.14.0/etc/Hadoop
 vim slavesnode01
 node02
 node03
 node04


第六步:单独启动新增节点
node04服务器执行以下命令,启动datanode和nodemanager

cd /export/servers/hadoop-2.6.0-cdh5.14.0/
 sbin/hadoop-daemon.sh start datanode
 sbin/yarn-daemon.sh start nodemanager


第七步:浏览器查看
http://192.168.100.201:50070/dfshealth.html#tab-overview

http://192.168.100.201:8088/cluster 第八步:使用负载均衡命令,让数据均匀负载所有机器

node01执行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0/
sbin/start-balancer.sh
HDFS删除节点退役旧数据节点
目标:掌握HDFS在集群中删除掉无效节点的步骤
第一步:创建dfs.hosts.exclude配置文件
在namenod的cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop目录下创建dfs.hosts.exclude文件,并添加需要退役的主机名称
node01执行以下命令

*
 cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
 *
 touch dfs.hosts.exclude
 *
 vim dfs.hosts.exclude
node04

第二步:编辑namenode所在机器的hdfs-site.xml
编辑namenode所在的机器的hdfs-site.xml配置文件,添加以下配置
node01执行以下命令

cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
 vim hdfs-site.xml dfs.hosts.exclude /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/dfs.hosts.exclude

第三步:刷新namenode,刷新resourceManager
在namenode所在的机器执行以下命令,刷新namenode,刷新resourceManager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes

第四步:查看web浏览界面
浏览器访问
http://192.168.100.201:50070/dfshealth.html#tab-datanode
第五步:节点退役完成,停止该节点进程
等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役。·

node01执行以下命令,停止该节点进程

*
 cd /export/servers/hadoop-2.6.0-cdh5.14.0
 *
 sbin/hadoop-daemon.sh stop datanode
 *
 sbin/yarn-daemon.sh stop nodemanager

第六步:从include文件中删除退役节点

namenode所在节点也就是node01执行以下命令删除退役节点
 *
 cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoopvim dfs.hosts
 node01
 node02
 node03


namenode所在节点也就是node01执行以下命令刷新namenode和resourceManager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes

第七步:从namenode的slave文件中删除退役节点
namenode所在机器也就是node01执行以下命令从slaves文件中删除退役节点

cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
 vim slavesnode01
 node02
 node03


第八步:如果数据负载不均衡,执行以下命令进行均衡负载
node01执行以下命令进行均衡负载

cd /export/servers/hadoop-2.6.0-cdh5.14.0/
 sbin/start-balancer.sh