Hadoop运维记录系列(二十四)


从这篇开始记录一下集群迁移的事情早先因为机房没地方,就已经开始规划集群搬机房的事情,最近终于开始动手了,我会把这次不停机迁移的过程遇到的主要问题和矛盾以及各种解决方法记录下来。集群规模说大不大,几百台,总容量30PB左右。Hadoop使用CDH 5.5.1加一些自定义patch的rpm打包编译版本。总的方案是集群不停机,在两个机房之间架设专线,旧机房decommission,拉到新机房recommission。每天不能下线太多机器,要保证计算。新机房提前架设90台机器,测试带宽。带宽的测试方式是比较简单粗暴的,就是在新机房拿几十台新机器搭一个集群,然后旧机房集群和新机房集群之间做distcp, 香港云主机带宽能打满即可。新机房拆除小集群,合并到大集群里,机架感知按照 “/机房/机架” 这种方式划分,然后提前做一段时间balancer。当然在这里面会发现一些问题,我记录在上一篇博客里了,这里再重复记录一下。万兆网卡的mtu问题,新机房的新机器datanode报slow block receiver问题,调整网卡mtu从1500到9000,解决。df 命令卡死,升级systemd并重启解决跑作业慢,打Centos 7 CPU补丁 重启广播风暴问题,流量比较大,查看网口每机器每秒几百条ARP通告,目前无解,后续运维VLAN解决。详情看 运维记录系列二十三https://blog.51cto.com/slaytanic/2141665
期间还遇到了decommission速度慢的问题,调整了一下dn参数dfs.datanode.max.transfer.threads到16384,然后调整NN参数 dfs.namenode.replication.max-streams-hard-limit参数到8感觉也没快多少,然后翻看源码,在 src/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/UnderReplicatedBlocks.java 这个文件里面从这里获取需要被复制的数据块的索引,我们只需要将 Integer replIndex = proorityToReplIdx.get(priority);改为 Integer replIndex = 0;即可。但是为了改一行代码我还得重新编译,就不划算了。于是同事找了个工具叫byteman,jboss公司出品的内存修改器,可以理解成针对Java进行内存修改的金山游侠。
具体修改参考同事的github,我就不重复了。不过万一内存改崩溃了,本人不负任何责任。
https://github.com/whitelilis/whitelilis.github.io/issues/17

相关推荐: 如何利用JavaScript差集实现一个对比工具

本文小编为大家详细介绍“如何利用JavaScript差集实现一个对比工具”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何利用JavaScript差集实现一个对比工具”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。先把页面搞一搞未提…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/22 21:22
Next 07/22 21:22

相关推荐