如何对HDFS进行节点内(磁盘间)数据平衡

这篇具有很好参考价值的文章主要介绍了如何对HDFS进行节点内(磁盘间)数据平衡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当HDFS的DataNode节点挂载多个磁盘时,往往会出现两种数据不均衡的情况:

1.不同DataNode节点间数据不均衡;

2.挂载数据盘的磁盘间数据不均衡。

特别是这种情况:当DataNode原来是挂载了几个数据盘,当磁盘占用率很高之后,再挂载新的数据盘。由于Hadoop 2.x 版本并不支持HDFS的磁盘间数据均衡,因此,会造成老数据磁盘占用率很高,新挂载的数据盘几乎很空。在这种情况下,挂载新的数据盘就失去了扩容HDFS数据盘的意义。

如果想要解决节点内多块磁盘数据不均衡的现象,就要借助DiskBalancer。Hadoop3,默认就支持磁盘间数据均衡,本文档主要介绍在CDP中如何进行HDFS磁盘扩容并在节点内进行Balancer。

1.登陆CM界面,进入HDFS点击配置,搜索“hdfs-site.xml”添加以下内容后并重启HDFS服务

dfs.disk.balancer.enabled=true


 

hdfs重新平衡,hdfs,hadoop,大数据


2.使用系统的hdfs.keytab进行认证,一般在/var/run/cloudera-scm-agent/process/1952-hdfs-JOURNALNODE  目录下等,或者自己生成 ,首选CDH系统自动生成的keytab,自己生成的不一定能用

kinit -kt hdfs.keytab hdfs/c1.liuhao.com
klist

hdfs重新平衡,hdfs,hadoop,大数据


3.典型的磁盘平衡器任务涉及三个步骤(通过HDFS的diskbalancer 命令):plan, execute 和 query。第一步,HDFS客户端从NameNode上读取指定DataNode的的必要信息以生成执行计划:

hdfs重新平衡,hdfs,hadoop,大数据

磁盘平衡执行计划生成的文件内容格式是Json的,并且存储在HDFS之上。在默认情况下,这些文件是存储在 /system/diskbalancer 目录下面。

hdfs diskbalancer -query c1.liuhao.com

4.可以通过下面的命令在DataNode上执行这个生成的计划:

hdfs diskbalancer -execute /system/diskbalancer/2021-Oct-20-21-42-55/c1.liuhao.com.plan.json

hdfs重新平衡,hdfs,hadoop,大数据


5.以上命令将JSON里面的计划提交给DataNode,而DataNode会启动一个名为BlockMover的线程中执行这个计划。我们可以使用 query 命令来查询DataNode上diskbalancer任务的状态:

hdfs diskbalancer -query c1.liuhao.com

hdfs重新平衡,hdfs,hadoop,大数据

 这个意思是计划正在执行

hdfs重新平衡,hdfs,hadoop,大数据

 
上面结果输出的PLAN_DONE表示disk-balancing task已经执行完成。为了验证磁盘平衡器的有效性,我们可以使用df -h 命令来查看各个磁盘的空间使用率:

6.如果集群节点磁盘不均衡,可以在CM界面打开进行均衡文章来源地址https://www.toymoban.com/news/detail-595835.html

到了这里,关于如何对HDFS进行节点内(磁盘间)数据平衡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【HDFS】客户端读某个块时,如何对块的各个副本进行网络距离排序?

    本文包含如下内容: ① 通过图解+源码分析/A1/B1/node1和 /A1/B2/node2 这两个节点的网络距离怎么算出来的 ② 客户端读文件时,副本的优先级。(怎么排序的,排序规则都有哪些?) ③ 我们集群发现的一个问题。 客户端读时,通过调用getBlockLocations RPC 获取文件的各个块。 在给

    2024年02月13日
    浏览(43)
  • hadoop的hdfs中避免因节点掉线产生网络风暴

    控制节点掉线RPC风暴的参数 三个参数都是hdfs-site.xml中参数,具体可以参考apache hadoop官网,其实块的复制速度有两个方面决定,一是namenode分发任务的速度,二则是datanode之间进行复制的速度。前者可以理解成入口,后者可以当成出口。 1.入口参数 :从namenode层面控制任务分发

    2024年02月11日
    浏览(34)
  • 分布式文件系统HDFS之利用Java API与HDFS进行交互

    文章目录 一、环境要求 二、在Ubuntu中安装Eclipse 三、在Eclipse创建项目 四、为项目添加需要用到的JAR包 五、编写Java应用程序代码  总结 Hadoop不同的文件系统之间通过调用Java API进行交互,利用Java API进行交互,需要利用软件Eclipse编写Java程序。 已经配置好网络的Ubuntu系统的虚

    2023年04月21日
    浏览(36)
  • 对HDFS和Hive等技术进行详细解读;

    作者:禅与计算机程序设计艺术 Apache Hadoop是一个开源的分布式文件系统和计算框架,是 Apache Software Foundation 的顶级项目。它由Apache基金会所托管,并得到了广泛的应用,特别是在互联网搜索、电子商务、日志分析、数据仓库方面。HDFS(Hadoop Distributed File System)是Apache Hado

    2024年02月06日
    浏览(106)
  • IDEA连接Linux上的Hadoop并对HDFS进行操作

    和Linux上版本相同的Hadoop 压缩包解压 : 将放在Linux上面的Hadoop压缩包( hadoop_xxxx.tar.gz )放在Windows 任意硬盘 中 任意 (建议新创建的一个Hadoop文件夹) 文件夹 , 然后 直接进行解压即可 , 不需要担心软件的系统适配问题 配置 HADOOP_HOME 环境变量 及添加 bin 和 sbin 目录的 系统路径 验证

    2024年02月09日
    浏览(42)
  • 【HDFS实战】HDFS上的数据均衡

    HDFS上的balance目前有两类: Balancer :多数据节点之间的balance Disk Balancer :单数据节点内磁盘之间的balance NN增加新块时的默认策略(默认3副本) 将块的一份副本存储在接收写入请求的DN节点上; 在第一份副本所在DN的机架中寻找另一个DN,存放一份新副本。 在不同机架的DN上

    2024年02月13日
    浏览(45)
  • 大数据技术基础实验四:HDFS实验——读写HDFS文件

    在前面的实验中我们进行了HDFS的部署,并设置了一键启动HDFS操作,本期实验我们将使用HDFS开发环境进行HDFS写、读的编写,以及程序的运行,了解HDFS读写文件的调用流程,理解HDFS读写文件的原理。 好啦废话不多说,我们开始今天的实验操作。 会在Linux环境下编写读写HDFS文

    2023年04月16日
    浏览(40)
  • HDFS集群部署成功但网页无法打开如何解决(显示配置通过浏览器访问hdfs的端口)

    在学习黑马2023大数据教程过程中,首先依照视频完成了如下配置:【必须】 【黑马2023大数据实战教程】大数据集群环境准备过程记录(3台虚拟机) 黑马2023大数据实战教程】VMWare虚拟机部署HDFS集群详细过程 最后node1的hadoop用户下输入 start-dfs.sh 一键启动hdfs集群成功,三台虚

    2024年02月09日
    浏览(57)
  • 使用javaAPI对HDFS进行文件上传,下载,新建文件及文件夹删除,遍历所有文件

    目录 //通过工具类来操作hdfs   hdfs dfs -put d:user_info.txt  /user_info.txt  // 将文件放入到hdfs中  2.通过工具类来操作hdfs   hdfs dfs -get hdfs路径   本地路经  将文件放入到本地Windows中 3.通过工具类来操作hdfs   hdfs dfs -mkdir -p  hdfs路径 4.通过工具类来操作hdfs  查看一个文件是否存在

    2024年02月12日
    浏览(49)
  • 使用Java API对HDFS进行如下操作:文件的创建、上传、下载以及删除等操作

    HDFS-JAVA接口:上传文件 将一个本地文件(无具体要求)上传至HDFS中的/hdfs-test路径下(如无此路径,新建一个)。 新建路径:   首先在路径/usr/test/ 下新建test.txt,指令为:/usr/test/test.txt,然后进行上传操作。      2.HDFS-JAVA接口:创建文件 在HDFS中的/hdfs-test路径下新建一个da

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包