阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。
摘要:当HDFS集群出现DataNode节点间磁盘利用率不平衡时,会导致MapReduce应用程序无法很好地利用本地计算的优势、数据节点之间无法达到更好的网络带宽使用率等问题。因此管理员需要定期检查并保持DataNode数据平衡。
本文分享自华为云社区《【云小课】EI第43课 MRS基础操作之配置DataNode容量均衡》,原文作者:阅识风云
HDFS集群可能出现DataNode节点间磁盘利用率不平衡的情况,比如集群中添加新数据节点的场景。如果HDFS出现数据不平衡的状况,可能导致多种问题,比如MapReduce应用程序无法很好地利用本地计算的优势、数据节点之间无法达到更好的网络带宽使用率或节点磁盘无法利用等等。所以系统管理员需要定期检查并保持DataNode数据平衡。
HDFS提供了一个容量均衡程序Balancer。通过运行这个程序,可以使得HDFS集群达到一个平衡的状态,使各DataNode磁盘使用率与HDFS集群磁盘使用率的偏差不超过阈值。如下图1和图2分别是Balance前后DataNode的磁盘使用率变化。
图1 执行均衡操作前DataNode的磁盘使用率
图2 执行均衡操作后DataNode的磁盘使用率
因此针对集群情况,可以大概估算每个iteration耗费的时间(可以通过执行Balancer的日志观察到每次iteration的时间),并用总数据量除以10GB估算任务执行时间。
由于按iteration处理,Balancer可以随时启动或者停止。
参考MRS快速入门的“创建集群”章节购买一个MRS集群,例如购买MRS 3.1.0版本集群,集群包含HDFS等组件,该集群已开启Kerberos认证。
已安装HDFS客户端,可参考MRS用户指南的“安装客户端”章节,例如客户端安装目录为“/opt/client”。
1.使用客户端安装用户登录客户端所在节点。执行命令切换到客户端安装目录,例如“/opt/client”。
cd /opt/client
2.执行以下命令配置环境变量。
source bigdata_env
3.执行以下命令认证hdfs身份。hdfs用户默认密码请参考MRS用户指南中的“用户帐号一览表”章节获取。首次认证需要修改密码。
kinit hdfs
4.执行以下命令,启动Balance任务。
bash /opt/client/HDFS/hadoop/sbin/start-balancer.sh -threshold <threshold of balancer>
<threshold of balancer>:表示HDFS数据达到平衡状态时DataNode磁盘使用率偏差值,各个DataNode节点磁盘的使用率和整体HDFS集群的磁盘空间平均使用率偏差小于此阈值时,系统认为HDFS集群已经达到了平衡的状态并结束Balance任务。
例如,需要设置偏差率为5%,则执行:
bash /opt/client/HDFS/hadoop/sbin/start-balancer.sh -threshold 5
如果需要停止Balance任务,请执行以下命令:
bash /opt/client/HDFS/hadoop/sbin/stop-balancer.sh
5.用户在执行了步骤4的脚本后,会在客户端安装目录“/opt/client/HDFS/hadoop/logs”目录下生成名为hadoop-root-balancer-主机名.out日志。执行以下命令打开该日志。
vi /opt/client/HDFS/hadoop/logs/hadoop-root-balancer-主机名.out
日志出现“Balancing took xxx seconds”信息表示均衡操作已完成。
Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved NameNode The cluster is balanced. Exiting... May 25, 2022 5:01:21 PM 0 0 B 0 B 0 B hdfs://hacluster May 25, 2022 5:01:21 PM Balancing took 1.456 seconds ......
可以看到如下字段信息:
好了,本期云小课就介绍到这里,快去体验MapReduce(MRS)更多功能吧!猛戳这里
MapReduce服务为用户提供海量数据的管理及分析功能,快速从结构化和非结构化的海量数据中挖掘您所需要的价值数据。集群中的FusionInsight Manager将提供企业级的集群的统一管理平台。