hadoop2.7.1不重启,动态删除节点和新增节点
2017-11-03 17:01
417 查看
摘要: 看网上介绍的都是介绍的hadoop老版本的动态删除和新增节点的方法,在2.7.1版本中,我看到hadoop的datanode的进程主要有两个datanode和nodemanager,和网上介绍的datanode和tasktracker不一样啊,于是自己去官网研究了一下。
hadoop重启太麻烦了,需要暂停当前所有的任务。所以动态的删除和新增节点就很重要了。
先说动态删除节点:
(配置为可动态删除节点,这个是要重启的,以后需要动态删除节点时,就不用重启了。)进入hadoop目录的etc/hadoop/目录
1.增加excludes文件,每行写一个要删除的节点的主机名
2.在hdfs-site.xml中增加
<property>
<name>dfs.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
</property>
3.在mapred-site.xml中增加
<property>
<name>mapred.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
<final>true</final>
</property>
这样,如果需要删除某一节点,只需把该节点的主机名写入excludes文件,然后执行(仅在namenode上修改文件,执行命令即可)
hadoop dfsadmin -refreshNodes
查看节点状态hadoop dfsadmin -report或者web管理端页面,可以看到该节点是decomissioning状态,等它变化为decomissioned,就可以把这个节点拿掉了。拿掉后,该节点上进程还是都在的,直接kill即可。
动态新增节点:
因为我是把删除的节点重新加上,所以环境之类的就不用配置了。直接使用原来的就行。
在节点上执行,/data/hadoop/etc/hadoop/是配置文件目录,这是启动datanode
hadoop-daemon.sh --config /data/hadoop/etc/hadoop/ --script hdfs start nodemanager
然后启动nodemanager
yarn-daemons.sh --config /data/hadoop/etc/hadoop/ start nodemanager
这条命令是启动了所有slave主机的nodemanager,所以执行中会报错,其他的主机已启动。
我看有的帖子通过以下命令启动:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
我的启动了,这两个命令就不试了。朋友们测试后可以告诉我哦~(已测试过了,成功,第二种启动更合理)
然后,删除前文中的excludes文件中该节点的主机名,执行刷新操作即可。
hadoop dfsadmin -refreshNodes
至此,可以看到已经新增了该节点的datanode。
hadoop的数据的负载均衡:
执行以下命令,-threshold 5这个参数可以不写,默认是10
start-banlancer.sh -threshold 5
然后就可以查看日志了,在哪台机器上执行该命令,日志就在哪台机器上。
tail -f /data/hadoop/logs/hadoop-hadoop-balancer-hostname.log
静等均衡完毕!
hadoop重启太麻烦了,需要暂停当前所有的任务。所以动态的删除和新增节点就很重要了。
先说动态删除节点:
(配置为可动态删除节点,这个是要重启的,以后需要动态删除节点时,就不用重启了。)进入hadoop目录的etc/hadoop/目录
1.增加excludes文件,每行写一个要删除的节点的主机名
2.在hdfs-site.xml中增加
<property>
<name>dfs.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
</property>
3.在mapred-site.xml中增加
<property>
<name>mapred.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
<final>true</final>
</property>
这样,如果需要删除某一节点,只需把该节点的主机名写入excludes文件,然后执行(仅在namenode上修改文件,执行命令即可)
hadoop dfsadmin -refreshNodes
查看节点状态hadoop dfsadmin -report或者web管理端页面,可以看到该节点是decomissioning状态,等它变化为decomissioned,就可以把这个节点拿掉了。拿掉后,该节点上进程还是都在的,直接kill即可。
动态新增节点:
因为我是把删除的节点重新加上,所以环境之类的就不用配置了。直接使用原来的就行。
在节点上执行,/data/hadoop/etc/hadoop/是配置文件目录,这是启动datanode
hadoop-daemon.sh --config /data/hadoop/etc/hadoop/ --script hdfs start nodemanager
然后启动nodemanager
yarn-daemons.sh --config /data/hadoop/etc/hadoop/ start nodemanager
这条命令是启动了所有slave主机的nodemanager,所以执行中会报错,其他的主机已启动。
我看有的帖子通过以下命令启动:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
我的启动了,这两个命令就不试了。朋友们测试后可以告诉我哦~(已测试过了,成功,第二种启动更合理)
然后,删除前文中的excludes文件中该节点的主机名,执行刷新操作即可。
hadoop dfsadmin -refreshNodes
至此,可以看到已经新增了该节点的datanode。
hadoop的数据的负载均衡:
执行以下命令,-threshold 5这个参数可以不写,默认是10
start-banlancer.sh -threshold 5
然后就可以查看日志了,在哪台机器上执行该命令,日志就在哪台机器上。
tail -f /data/hadoop/logs/hadoop-hadoop-balancer-hostname.log
静等均衡完毕!
相关文章推荐
- hadoop2.7.1不重启,动态删除节点和新增节点
- hadoop2.7 动态新增节点和删除节点
- 【hadoop 2.7.1 】动态添加节点、删除节点
- Hadoop动态加入/删除节点(datanode和tacktracker)
- Hadoop2.x集群动态添加删除数据节点
- hadoop新增/删除节点
- Hadoop集群节点的动态增加与删除
- Hadoop2.6集群动态添加和删除数据节点
- hadoop动态删除节点
- Hadoop集群节点的动态增加与删除
- Hadoop学习记录(5)|集群搭建|节点动态添加删除
- 3步动态新增hadoop节点
- Hadoop集群节点的动态增加与删除
- hadoop 动态下架(删除)节点
- hadoop动态增加删除节点
- Hadoop 新增删除节点
- Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向 (四十三)
- Hadoop之——Hadoop 2.6.3动态增加/删除DataNode节点
- HADOOP/HBase动态新增节点
- hadoop集群动态添加和删除节点说明