您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

磁盘均衡器:HDFS Disk Balancer

时间:2021-12-10 15:21:07  来源:  作者:益达骚年

背景

相比较于个人PC,服务器一般可以通过挂载多块磁盘来扩大单机的存储能力。

磁盘均衡器:HDFS Disk Balancer

服务器和磁盘

在Hadoop HDFS中,DataNode负责最终数据block的存储,在所在机器上的磁盘之间分配数据块。当写入新block时,DataNodes将根据选择策略(循环策略可用空间策略)来选择block的磁盘(卷)。

循环策略:它将新block均匀分布在可用磁盘上。默认此策略。

可用空间策略:此策略将数据写入具有更多可用空间(按百分比)的磁盘。

磁盘均衡器:HDFS Disk Balancer

服务器磁盘使用情况

但是,在长期运行的群集中采用循环策略时,DataNode有时会不均匀地填充其存储目录(磁盘/卷),从而导致某些磁盘已满而其他磁盘却很少使用的情况。发生这种情况的原因可能是由于大量的写入和删除操作,也可能是由于更换了磁盘。

另外,如果我们使用基于可用空间的选择策略,则每个新写入将进入新添加的空磁盘,从而使该期间的其他磁盘处于空闲状态。这将在新磁盘上创建瓶颈。

因此,需要一种Intra DataNode Balancing(DataNode内数据块的均匀分布)来解决Intra-DataNode偏斜(磁盘上块的不均匀分布),这种偏斜是由于磁盘更换或随机写入和删除而发生的。

因此,Hadoop 3.0中引入了一个名为Disk Balancer的工具,该工具专注于在DataNode内分发数据。

HDFS Disk Balancer简介

HDFS disk balancer是Hadoop 3中引入的命令行工具,用于平衡DataNode中的数据在磁盘之间分布不均匀问题。 这里要特别注意,HDFS disk balancer与HDFS Balancer是不同的:

HDFS disk balancer针对给定的DataNode进行操作,并将块从一个磁盘移动到另一个磁盘,是DataNode内部数据在不同磁盘间平衡;

HDFS Balancer平衡了DataNode节点之间的分布。

HDFS Disk Balancer功能

HDFS Disk balancer支持两个主要功能,即报告平衡

数据传播报告

为了定义一种方法来衡量集群中哪些计算机遭受数据分布不均的影响,HDFS磁盘平衡器定义了HDFS Volume Data Density metric(卷/磁盘数据密度度量标准)和Node Data Density metric(节点数据密度度量标准)。

HDFS卷数据密度度量标准能够比较数据在给定节点的不同卷上的分布情况。

节点数据密度度量允许在节点之间进行比较。

  • Volume data density metric计算过程

假设有一台具有四个卷/磁盘的计算机-Disk1,Disk2,Disk3,Disk4,各个磁盘使用情况:

 

Disk1

Disk2

Disk3

Disk4

capacity

200 GB

300 GB

350 GB

500 GB

dfsUsed

100 GB

76 GB

300 GB

475 GB

dfsUsedRatio

0.5

0.25

0.85

0.95

volumeDataDensity

0.20

0.45

-0.15

-0.24

Total capacity= 200 + 300 + 350 + 500 = 1350 GB

Total Used= 100 + 76 + 300 + 475 = 951 GB

因此,每个卷/磁盘上的理想存储为:

Ideal storage = total Used ÷ total capacity= 951÷1350 = 0.70

也就是每个磁盘应该保持在 70%理想存储容量。

VolumeDataDensity = idealStorage – dfs Used Ratio

比如Disk1的卷数据密度= 0.70-0.50 = 0.20。其他Disk以此类推。

volumeDataDensity的正值表示磁盘未充分利用,而负值表示磁盘相对于当前理想存储目标的利用率过高。

  • Node Data Density计算过程

Node Data Density(节点数据密度)= 该节点上所有卷/磁盘volume data density绝对值的总和。

上述例子中的节点数据密度=|0.20|+|0.45|+|-0.15|+|-0.24| =1.04

较低的node Data Density值表示该机器节点具有较好的扩展性,而较高的值表示节点具有更倾斜的数据分布。

一旦有了volumeDataDensity和nodeDataDensity,就可以找到集群中数据分布倾斜的节点,或者可以获取给定节点的volumeDataDensity。

磁盘平衡

当指定某个DataNode节点进行disk数据平衡,就可以先计算或读取当前的volumeDataDensity(磁盘数据密度)。有了这些信息,我们可以轻松地确定哪些卷已超量配置,哪些卷已不足。为了将数据从一个卷移动到DataNode中的另一个卷,Hadoop开发实现了基于RPC协议的Disk Balancer。

HDFS Disk Balancer开启

HDFS Disk Balancer通过创建计划进行操作,该计划是一组语句,描述应在两个磁盘之间移动多少数据,然后在DataNode上执行该组语句。计划包含多个移动步骤。计划中的每个移动步骤都具有目标磁盘,源磁盘的地址。移动步骤还具有要移动的字节数。该计划是针对可操作的DataNode执行的。

默认情况下,Hadoop群集上已经启用了Disk Balancer功能。通过在hdfs-site.xml中调整dfs.disk.balancer.enabled参数值,选择在Hadoop中是否启用磁盘平衡器。

HDFS Disk Balancer相关命令

Plan计划

命令:hdfs diskbalancer -plan <datanode>

-out //控制计划文件的输出位置

-bandwidth //设置用于运行Disk Balancer的最大带宽。默认带宽10 MB/s。

–thresholdPercentage //定义磁盘开始参与数据重新分配或平衡操作的值。默认的thresholdPercentage值为10%,这意味着仅当磁盘包含的数据比理想存储值多10%或更少时,磁盘才用于平衡操作。

-maxerror //它允许用户在中止移动步骤之前为两个磁盘之间的移动操作指定要忽略的错误数。

-v //详细模式,指定此选项将强制plan命令在stdout上显示计划的摘要。

-fs //此选项指定要使用的NameNode。如果未指定,则Disk Balancer将使用配置中的默认NameNode。

磁盘均衡器:HDFS Disk Balancer

命令

Execute执行

命令:hdfs diskbalancer -execute <JSON file path>

execute命令针对为其生成计划的DataNode执行计划。

Query查询

命令:hdfs diskbalancer -query <datanode>

query命令从运行计划的DataNode获取HDFS磁盘平衡器的当前状态。

Cancel取消

命令:hdfs diskbalancer -cancel <JSON file path>

hdfs diskbalancer -cancel planID node <nodename>

cancel命令取消运行计划。

Report汇报

命令:hdfs diskbalancer -fs https://namenode.uri -report <file://>



Tags:磁盘均衡器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
背景相比较于个人PC,服务器一般可以通过挂载多块磁盘来扩大单机的存储能力。服务器和磁盘在Hadoop HDFS中,DataNode负责最终数据block的存储,在所在机器上的磁盘之间分配数据块...【详细内容】
2021-12-10  Tags: 磁盘均衡器  点击:(22)  评论:(0)  加入收藏
▌简易百科推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(1)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(12)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(7)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(8)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(7)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(6)  评论:(0)  加入收藏
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  zebra-08    Tags:Hive   点击:(9)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  网安人    Tags:服务器   点击:(7)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  mdong    Tags:Nginx   点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  LaLiLi    Tags:SSH连接   点击:(16)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条