内容简介:本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客。QQ邮箱地址:1120746959@qq.com,如有任何学术交流,可随时联系。
本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客。QQ邮箱地址:1120746959@qq.com,如有任何学术交流,可随时联系。
1 节点扩容
-
配置/etc/hosts添加新节点的IP和主机名
-
配置etc/hadoop/slaves添加新节点的主机名
-
配置hdfs-site.xml,设置节点平衡带宽设置(默认值1M,下面设置为10M)
<property> <name>dfs.datanode.balance.bandwidthPerSec</name> <value>20971520</value> </property> 复制代码
-
在新节点上执行datanode
hadoop-daemon.sh start datanode 复制代码
-
数据平衡,让各个DataNode中的数据均匀分布,threshold是平衡阈值,默认值允许10%的差异,值越小越平衡,但花费的时间会越长,平衡时先通过NameNode提供的元数据进行平衡规划,然后开启多线程将数据从老节点移到新节点。
start-balancer.sh -threshold 5 复制代码
-
设置平衡时使用的网络带宽(字节/秒),在网络带宽受限的情况下,平衡速度较慢,需要耐心等待一段时间才能观察到效果
hdfs dfsadmin -setBalancerBandwidth20971520 复制代码
2 节点缩容
-
在namenode中打开hdfs-site.xml,设置节点排除文件的位置(必须是绝对路径),在excludes文件中添加要排除的节点主机名,一行一个
<property> <name>dfs.hosts.exclude</name> <value>/usr/local/hadoop/etc/hadoop/excludes</value> </property> 复制代码
-
更新节点配置,然后在Hadoop站点上很快就能看到Decommission正在进行,此时NameNode会检查并将数据复制到其它节点上以恢复副本数(要移除的节点上的数据不会被删除,如果数据比较敏感,要手动删除它们)
NameNode中执行下面命令,强制重新加载配置:
hdfs dfsadmin -refreshNodes 复制代码
-
查看资源汇报情况
hdfs dfsadmin -report 复制代码
-
等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令,几分钟后,节点将从Decommissioned进入Dead状态。
hadoop-daemon.sh stop datanode 复制代码
-
更新集群配置(所有节点同步)
NameNode的excludes文件及slaves文件、hosts文件中去掉已经移除的主机名。 复制代码
以上所述就是小编给大家介绍的《Hadoop自由实现伸缩节点详细说明-Hadoop商业环境实战》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Apache Ignite 2.5.0 版本发布,千级节点伸缩性
- K8S水平伸缩器 - 自动伸缩微服务实例数量
- kubernetes自动伸缩
- 微服务实例自动弹性伸缩实践
- 在Kubernetes上部署和伸缩Jenkins
- Jenkins + DockerSwarm 实现弹性伸缩持续集成
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。