Hdfs3.x新特性详解

九月2年前技术文章803

HDFS Disk Balancer(磁盘均衡器)

HDFS Disk Balancer与HDFS Balancer的区别?

两者都是实现负载均衡功能

HDFS Balancer是之前Hadoop2.x中本身存在的,主要是多个DataNode节点之间的数据的平衡。

HDFS Disk Balancer是Hadoop3中新出现的,主要是为了DataNode节点内部的磁盘的负载均衡,一个DataNode节点中包含多个磁盘,如果一个磁盘数据比较多,HDFS Disk Balancer就会将这个磁盘中的数据进行迁移,迁移到datanode别的磁盘中。

HDFS Disk Balancer功能

数据传播报告、磁盘平衡,主要是根据卷(磁盘)平衡密度和节点平衡密度(越低越好)进行磁盘平衡。

HDFS Disk Balancer相关操作

Hadoop3中默认开启disk balancer ,可以从hdfs-site.xml中配置dfs.disk.balancer.enabled参数值进行选择是否开启该功能。

plan计划
hdfs diskbalancer -plan <datanode>
execute执行:针对为其生成执行计划的datanode
hdfs diskbalancer -execute <Json file path>
query查询:从运行计划的datanode获取磁盘平衡器的当前状态
hdfs diskbalancer -query <datanode>
cancel取消:取消运行计划
hdfs diskbalancer -cancel <Json file path>
hdfs diskbalancer -cancel planid node <nodename>
report汇报:
hdfs diskbalancer -fs hdfs路径 -report

HDFS Erasure Coding(纠删码)

产生背景:3副本策略引起的磁盘和网络带宽的消耗

image.png

Erasure Coding:是一种编码容错技术,最早开始用于通信行业数据传输中的数据恢复,通过对数据分块,计算出校验数据,使每个部分的数据产生关联性,当一部分数据块丢失时,可以利用数据块和校验块反向推算出丢失的数据块。

图2.png

原理:

图3.png


HDFS Erasure Coding架构

为了支持纠删码,HDFS做了一些架构上的调整。

namenode扩展

条带化管理,即hdfs文件在逻辑上由block group(块组)管理,每个块组包含一定数量的block数。

客户端扩展

客户端读写路径得到增强,可以并行处理块组中的多个内部块。

datanode扩展

old:datanode向namenode定时反馈数据block的信息,namenode汇总后,和记录的信息进行对比,有缺失的进行调整补充。

new:datanode运行一个附加的ErasureCodingWorker(ECWorker)的任务,对失败的纠删编码块进行后台恢复,namenode检测到EC块后,任意选择datanode进行恢复。

纠删码策略

图44.png

Intel ISA-L

为了更好的支持EC,在硬件上作出的优化

图45.png

HDFS Erasure Coding部署

1、首先考虑cpu、带宽和机架数量这些集群硬件配置。

2、设置纠删码策略:纠删码策略参数dfs.namenode.ec.system.default.policy指定,默认是RS-6-3-1024K,其他策略是禁用的,可以通过hdfs ec [-enablePolicy  -policy <policyname>] 命令启动策略。

3、启用英特尔ISA-L(智能存储加速库)

图46.png

4、EC命令

hdfs ec命令

图4.png

图5.png

图6.png

cdh6.0.1中涉及到erasure coding的页面参数配置

图7.png





相关文章

CDH实操--集成 freeipa

CDH实操--集成 freeipa

1 概述环境准备: 1)安装cdh6.2.1 2)安装FreeIPA,server和client(在所有cdh节点)2 集成2.1 krb5.conf修改注释:default_ccache_nam...

大数据监控系列(二)——Prometheus+Grafana在CDH使用实践(包含Altermanager告警)

大数据监控系列(二)——Prometheus+Grafana在CDH使用实践(包含Altermanager告警)

1 概述我们之前在《大数据监控系列(一)——Promehteus+Grafana监控概述》中对Promehteus和Grafana的基本概念做了介绍,这里将介绍Promehteus和Grafana在c...

CDH实操--客户端安装

CDH实操--客户端安装

概述安装CDH客户端,主要是方便在CDH部署节点以外,通过客户端的方式连接CDH上的hdfs,hive和hbase服务1、安装jdk(适配CDH即可,一般1.8)2、获取安装包3、部署安装包把安装包解...

CDH实操--hive高可用

CDH实操--hive高可用

前言在CDH中,hive metastore、hiveserver2若角色单实例部署,或者部署多个实例但是连接配置任选其一的话,均存在单点问题,一旦实例故障就会影响业务稳定;这时我们就好考虑高可用部署...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。