【转载】CDH下线与上线主机
发布日期:2022-02-14 23:02:44 浏览次数:45 分类:技术文章

本文共 2026 字,大约阅读时间需要 6 分钟。

下线主机

对DataNode解除授权前调优HDFS

  • 减少同时下线的节点数量:最多同时停用 n − 1 n - 1 n1 个DataNode进行下线操作,等待下线完成后,进行副本检查( n n n 为副本数)

    hdfs fsck / -list-corruptfileblocks -openforwrite -files -blocks -locations 2>&1 > /tmp/hdfs-fsck.txt
  • 在下线节点检查是否有异常的副本和blocks,如果有请修复

    hdfs fsck / -list-corruptfileblocks -openforwrite -files -blocks -locations  > /tmp/hdfs-fsck.txt  #如果存在丢失的块hdfs fsck file_name -move #或者执行hdfs fsck file_name -delete
  • 以下参数增大主要是加快HDFS的balance的速度,实际也就会加快DataNode的下线速度。

    • 提高DataNodes的堆栈大小。DataNodes的heap size应配置至少4 GB,从而加快数据拷贝的周期以及每次的最大数据传输量
      • HDFS => Configuration => Scope => DataNode => Category => Resource Management
      • Java Heap Size of DataNode in Bytes => Java Heap Size
    • 设置DataNode平衡带宽并停止数据平衡操作
      • Scope => DataNode => Category => Performance
      • DataNode Balancing Bandwidth。默认值10MB,此值小能最大限度地减少退役对集群的影响,但代价是退役将需要更长时间
    • 调大Maximum Iteration Size参数(默认值为2,但建议为10)
      • Scope => NameNode => Category => Advanced
      • Maximum number of replication threads on a DataNode = 50
      • Hard limit on the number of replication threads on a DataNode = 100
      • 减少线程数(或使用默认值)以最小化退役对群集的影响,但代价是退役将需要更长时间
  • 重启生效

主机下线操作

  • 【停止主机角色】勾选要删除的主机 - 停止主机上的角色
  • 【角色解除授权】在各个角色的实例里面,将即将删除主机上的所有角色进行解除授权
  • 【主机解除授权】勾选要删除的主机 - 主机解除授权
    • 注意:spark及spark2需要停止和删除角色后才可以自动解除授权,否则会一直停在解除授权的位置不动
  • 【service cloudera-scm-agent stop】登录到要被删除的主机,停掉agent服务
service cloudera-scm-agent stopsystemctl list-units --type=servicesystemctl status cloudera-scm-agent.servicesystemctl disable cloudera-scm-agent.service
  • 【删除主机】勾选要删除的主机 - 从集群中删除
  • 【从集群删除主机】勾选要删除的主机 - Remove Hosts from Cloudera Manager。

正常解除授权下线可能造成数据丢失的原因分析

  • 同时下线的节点数量太多:下线的主机数 >= 副本数。且主机下线完成后,进行副本检查没有问题后再下线其他节点
  • 下线前数据副本不完整,建议下线前和下线后都需要对副本进行检查
  • 网络带宽原因,集群内作业数量大,占用带宽高,导致副本没有拷贝到其他节点,如果有数据平衡操作,需要停止数据平衡操作,数据平衡会移动blocks的副本

主机下线造成的blocks 丢失及恢复

  • 在HDFS找到原文件的blocks 的名称和存放的位置
    hadoop fsck /user/test/a.txt -files -blocks -locations
  • 然后再本地磁盘中find 到这个文件名,包括文件和元文件,将其cp到其它路径即可(完成模拟blocks丢失)
    find  /data1/dfs/dn -name blk_100376901*
  • 下线主机。注意:正常下线的节点本地盘中的HDFS 存储的数据还保留在本地磁盘中
  • 同上命令检查block是否丢失
  • 上线节点:blocks 自动恢复3副本

上线主机

  • 新主机上线:

    • jdk
    • ntp
    • hosts
    • CDH
    • CM agent and start
    • 向集群中添加主机
  • 下线的主机在上线

    • 以上步骤检查
    • 向集群中添加主机

转载地址:https://blog.csdn.net/fish2009122/article/details/103694156 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:假设检验是单侧还是双侧
下一篇:抽样分布定理

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月21日 20时32分12秒