大数据开发之Hive案例篇14:某个节点HDFS块比较多

这篇具有很好参考价值的文章主要介绍了大数据开发之Hive案例篇14:某个节点HDFS块比较多。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 问题描述

今天早上到公司,突然收到CDH集群某个节点的存储量的告警,如下图所示:
大数据开发之Hive案例篇14:某个节点HDFS块比较多

从图中可以看出,每个节点的HDFS空间是相同的,大多节点HDFS使用量在40%左右,而出问题的这个节点居然直逼80%,鉴于之前问题出现过多次,且每次都是利用空余时间使用HDFS的rebalance进行解决的,此处需要找出具体问题,规避此类问题。

二. 解决方案

2.1 查看节点安装的组件

大数据开发之Hive案例篇14:某个节点HDFS块比较多

2.2 排查HDFS配置

初步排查了一下各个节点的HDFS配置,暂未发现问题,且各个节点HDFS的配置是通过 Cloudera Manager进行配置的,配置也相同,不存在某个节点的HDFS相关配置出现问题,进而出现个别节点资源使用率高的情况。

2.3 排查Yarn配置

2.3.1 首先查看下nodemanager的日志

对比出问题的节点和正常的节点,从审计日志量来看,出问题的节点审计日志明显比正常节点多。
大数据开发之Hive案例篇14:某个节点HDFS块比较多

审计日志内容均是申请AM的,现在的问题是为什么cdh10节点的AM比其他节点多那么多?
大数据开发之Hive案例篇14:某个节点HDFS块比较多

2.3.2 查看container分配情况

正在运行container:
从下面截图来看,未发现啥异常情况。
大数据开发之Hive案例篇14:某个节点HDFS块比较多

从历史分配情况来看:
对比了cdh10和cdh7,发现近7天分配的container是均匀的。
大数据开发之Hive案例篇14:某个节点HDFS块比较多

大数据开发之Hive案例篇14:某个节点HDFS块比较多

2.3.3 查看调度机制

那么此时可以这么理解,当集群处于空闲时,突然来了一个任务,那么此时因为所有container的优先级相同,优先选择的就是本节点的container,而第一个container 用于启动作业的AM进程,这也就对应了之前的,chd10节点申请AM会比其他节点多很多。
大数据开发之Hive案例篇14:某个节点HDFS块比较多

我们知道AM用于协调,并不直接参与预算,真正参与运算的是container,而HDFS一般是计算节点优先写一份数据导datanode,然后再写其他副本。但是从上一步的分配情况来看,container分布是均匀的,

2.3.4 查看集群任务情况

从 job history上来看,可以看到,集群内小任务比较多,而因为是CDH集群,调度采用的是 Fair Scheduler(公平调度器),没有给小任务预留一部分集群资源。
大数据开发之Hive案例篇14:某个节点HDFS块比较多

2.3.5 集群负载情况

从集群的负载情况来看,集群存在明显的业务高峰期和空闲期。
大数据开发之Hive案例篇14:某个节点HDFS块比较多

大数据开发之Hive案例篇14:某个节点HDFS块比较多

大数据开发之Hive案例篇14:某个节点HDFS块比较多

2.3.6 resourcemanager与nodemanager是否可以混合部署

搜索到某个大佬给得说法:
大数据开发之Hive案例篇14:某个节点HDFS块比较多

一般是建议分开进行部署。

2.4 初步判断

初步判断,由于cdh10节点,既包含resourcemanager又包含nodemanager,且对于优先级相同的 Containers,优选选择满足本地性的 Container,参与计算的Container会优先写一份到本地的HDFS,故cdh10节点写HDFS会比较多。

于是建议运维先进行 HDFS rebalance,然后将cdh10节点nodemanager进行删除。

2.5 最终结论

近期比较忙,没让运维的处理,然后又有flume消费Kafka的数据实时同步到HDFS,因为之前缺失一部分数据,然后某几个节点在补录数据,刚好补录历史数据的进程出现了问题,就把这部分数据从HDFS上删除了,打算重新补录。

删除后发现,cdh10和cdh3的HDFS使用量突然降下来了,问题最终浮出水面。

cdh10和cdh3上刚好就是补录数据,而HDFS的写流程,第一个副本客户端优先,此例中flume节点所在的节点就是客户端。文章来源地址https://www.toymoban.com/news/detail-512669.html

参考:

  1. https://www.cnblogs.com/lemonu/p/13566208.html
  2. https://www.saoniuhuo.com/question/detail-1955187.html

到了这里,关于大数据开发之Hive案例篇14:某个节点HDFS块比较多的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 大数据开发之Hive案例篇9-Not yet supported place for UDAF ‘count‘

    一个很简单的group by和count(*) 操作,然后居然报错了 大概是在Oracle MySQL上写SQL写习惯了,以为可以这么写。 出了问题也是不知道从何排查 后面把order by子句注释掉之后,居然就可以了,那么就是order by 后面不能跟聚合函数了 于是使用了聚合函数的别名,问题搞定 修改为如下

    2024年02月06日
    浏览(41)
  • [大数据 Sqoop,hive,HDFS数据操作]

    目录 🥗前言: 🥗实现Sqoop集成Hive,HDFS实现数据导出 🥗依赖: 🥗配置文件: 🥗代码实现: 🥗控制器调用: 🥗Linux指令导入导出: 🥗使用Sqoop将数据导入到Hive表中。例如: 🥗使用Sqoop将数据从Hive表导出到MySQL中。例如: 🥗使用Sqoop将数据导入到HDFS中。例如: 🥗使用Sqoop将数据

    2024年02月09日
    浏览(30)
  • 如何对HDFS进行节点内(磁盘间)数据平衡

    当HDFS的DataNode节点挂载多个磁盘时,往往会出现两种数据不均衡的情况: 1.不同DataNode节点间数据不均衡; 2.挂载数据盘的磁盘间数据不均衡。 特别是这种情况:当DataNode原来是挂载了几个数据盘,当磁盘占用率很高之后,再挂载新的数据盘。由于Hadoop 2.x 版本并不支持HDFS的

    2024年02月16日
    浏览(40)
  • 【Hive】安装配置及导入Hdfs数据

    大家好!我是初心,很高兴再次和大家见面。 今天跟大家分享的文章是 Hive的安装以及导入Hdfs的数据到Hive中 ,希望能帮助到大家!本篇文章收录于 初心 的 大数据 专栏。 🏠 个人主页:初心%个人主页 🧑 个人简介:大家好,我是初心,和大家共同努力 💕 欢迎大家:这里

    2024年02月09日
    浏览(82)
  • HDFS 跨集群数据同步(hive,hadoop)

    两个不同的HDFS 集群数据迁移( A集群的数据 - B 集群) 采用的是 SHELL 脚本  按表进行; 日期分区进行; #!/bin/bash ##################### #创建人:DZH #创建日期: 2020-04 #内容: 数据迁移 ##################### ##################################### [ \\\"$#\\\" -ne 0 ] FILE=$1 path=$(cd `dirname $0`; pwd) ############## 获取执

    2024年04月27日
    浏览(36)
  • 大数据存储系统HDFS和对象存储(OOS/S3)的比较

      虽然Apache Hadoop以前都是使用HDFS的,但是当Hadoop的文件系统的需求产生时候也能使用S3。Netflix的 Hadoop data warehouse 利用这个特性把数据存储在S3上而不是HDFS上。笔者曾经工作经历的大数据集群存储都是用HDFS,当前工作接触到对象存储S3,在实践中比较两者的不同之处。 HD

    2024年02月12日
    浏览(35)
  • xslx表格文件采集到hdfs流程&hdfs数据 load到hive表

    咱们就是说,别的话不多说,直接开始实操 xslx在win系统上,打开后另存为csv文件格式,上传到linux系统中。(注意下编码格式,不然后面就是中文乱码)。 file -i csv文件 可以查看文件现在的编码格式(编码格式不匹配会导致文件内中文乱码)。 修改文件的编码格式: iconv

    2024年01月25日
    浏览(31)
  • 【Hive-基础】表数据的导出、导入(HDFS、本地)

    1、语法 (1) load data :表示加载数据 (2) local :表示从本地加载数据到hive表;否则从HDFS加载数据到hive表 (加local是从本地复制过去,不加local是从hdfs上剪切过去) (3) inpath :表示加载数据的路径 (4) overwrite :表示覆盖表中已有数据,否则表示追加 ​ (overwrite会把

    2024年01月21日
    浏览(30)
  • 一百一十一、Hive——从HDFS到Hive的数据导入(静态分区、动态分区)

    分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹, Hive 中的分区就是分目录 ,把一个大的数据集根据业务需要分割成小的数据集。 在查询时通过 where 子句中的表达式选择查询所需要的指定的分区,这样的查询效率 会提高很多,所以我们需要把常常用在where 语句中

    2024年02月12日
    浏览(36)
  • 【大数据Hive3.x数仓开发】窗口函数案例:连续N次登录的用户;级联累加求和;分组TopN

    对窗口函数的讲解part见:【大数据Hive3.x数仓开发】函数–窗口函数 自连接过滤实现 连续两天登陆的用户ID: 窗口函数lead()实现 功能:用于从当前数据中基于当前行的数据向后偏移取值 语法: lead(colName,N,defautValue) colName:取哪一列的值 N:向后偏移N行 defaultValue:如果取不到返回

    2023年04月17日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包