Hadoop常见场景

本篇文章主要列举一些Hadoop常用场景

​ 主要是以下几种

高可用集群

节点新增/减少/拉黑

HDFS数据迁移

大量小文件存储

高可用集群

​ 一句话概括 双namenode消除单点故障

​ 过程:

​ 对active Namenode进行的任何操作,都会同步到共享存储设备(从NAS NSF挂载)到一个目录,备用节点会监控共享存储设备,发现更改同步到自身,发生故障时进行切换

img

Hadoop节点上下线

上线

  1. 首先在slave配置中新加节点并且保证dfs.exclude文件为空

  2. 刷新node节点 ./hdfs dfsadmin -refreshNodes

  3. 直接启动节点./hadoop-daemon.sh datanode

  4. 如果是部署在yarn上,则 ./yarn-daemon.sh start nodemanager

  5. 均衡broker ./bin/start-balancer.sh -threshold 5

  6. 速度慢的话 ,修改带宽

     <property>
    2   <name>dfs.balance.bandwidthPerSec</name>  
    3   <value>1048576</value>  
    4   <description>  
    5     Specifies the maximum amount of bandwidth that each datanode   
    6     can utilize for the balancing purpose in term of   
    7     the number of bytes per second.   
    8   </description> 
    9 </property>
    

    下线

    • 需要配置的文件

    ​ namenode节点的dfs.exclude文件,添加下线节点即可

    ​ resourcemanager节点上的yarn.exclude文件,同样添加下线节点

    • 刷新Namenode和ResourceManager

    ​ hdfs dfsadmin -refreshNodes //刷新Namenode节点

    ​ yarn rmadmin -refreshNodes //刷新ResourceManager节点

    • 打开web浏览器,查看节点状态为udecommission in progress 表示正在退役中,当变为decommissioned 表明该节点数据块已被全部复制,所以不用担心下线数据丢失的问题

      • **注意:**如果集群节点副本数为n,则服役的节点必须>=n,否则不能下线成功
    • 停止datanode和namenode节点

      ./sbin/hadoop-daemon.sh stop datanode

      ./sbin/yarn-daemon.sh stop nodemanager

    • 数据不平衡,参考上文,使用再平衡命令进行修改

    Namenode 和DataNode多目录配置

    ​ 原因:增加可靠性

    namenode

    • 修改hfds.site配置,将dfs.namenode.name.dir 下的配置文件以多个逗号隔开

    • 配置已成功,需要格式化重启

      删除logs和data文件

      rm -rf data/* logs/*

    • 格式化namenode

      ./sbin/hdfs namenode -format

    • 启动集群

    思考一个问题,生产环境上敢格式化namenode吗?

    DataNode

    ​ 和namenode类似,修改hdfs.site配置文件中的dfs.datanode.data.dir属性,多个文件以逗号隔开

    HDFS小文件合并

    ​ 使用HDFS存档文件或者HAR文件

    ​ 原理:类似于在小文件外面包了一层,对Namenode来说是一个整体,对内还是一个一个的独立文件

    ​ 操作: 使用archive命令归档

    • bin/hadoop archive -archiveName a.har -p /usr/local/tmp
      

    HDFS数据迁移

    ​ 应用场景:集群升级情况

    ​ 使用命令:distcp

    ​ 过程:

    1. 新旧集群都要配置对方的主机名

    2. 执行命令 hadoop distcp hftp://hadoop1.x-namenode:50070/usr/local /usr/tmp

    3. 修改hdfs.site.xml配置

      <property>
      <name>dfs.checksum.type</name>
      <value>CRC32</value>
      <description>
          when  transfer data from  hadoop 1.x to hadoop 2.x  the data block  checksum  in hadoop 1.x is crc32
            and  hadoop 2.x is crc32c .   transfer data will fail .
      </description>
      </property>
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值