美文网首页
hdfs du -sk 导致机器load高

hdfs du -sk 导致机器load高

作者: breeze_lsw | 来源:发表于2017-11-10 08:45 被阅读212次

hdfs 会定期(默认10分钟)使用 du -sk 命令统计BP的大小,在大硬盘机器上该操作耗时将会很长(可能超过10分钟)。这会导致 iowait 以及 load的提升。

例如:


ps -ef | grep 'du -sk' iostat -x -d

社区为了解决这个问题,主要在两个方面进行了改造:
https://issues.apache.org/jira/browse/HADOOP-9884

  1. 使用 df 命令替换 du
  2. 允许用户自定义检查间隔时间

问题虽然被解决了,不过低于hadoop2.8的版本需要升级或者打patch的方式进行优化,较为麻烦。

不过也有一些临时的方案,比如说捕获到hdfs调用的 du -sk 命令,使用 df -k 进行替换。

tip: 这个方法的前提是每个BP目录单独位于一个磁盘上。

du 脚本,对正常的du命令不进行修改

mv /usr/bin/du /usr/bin/du_bak
vim /usr/bin/du

#!/bin/sh
if [[ $2 == */current/BP-* ]] && [ $1 == -sk ]
then
    used=`df -k $2 | grep -vE 'Used|可用' | awk '{print $3}'`
    echo -e "$used\t$2"
else
    echo -e "$(du_bak $@)"
fi

chmod +x /usr/bin/du

红框为某机器替换后的du命令的效果,1图黄色部分为iowait比例:

cpu util load

相关文章

  • hdfs du -sk 导致机器load高

    hdfs 会定期(默认10分钟)使用 du -sk 命令统计BP的大小,在大硬盘机器上该操作耗时将会很长(可能超过...

  • 解决发布后机器负载高的问题

    发布后机器负载高,如果不妥善处理很可能导致过载,使线上请求超时 防止局部机器过载 A. load balance算...

  • 一些命令

    1.查看文件夹文件大小 du -sk [filename] du -sh * 2.

  • HDFS 体系结构指南

    1. 简介 HDFS是一个高容错和可部署在廉价机器上的系统。HDFS提供高吞吐数据能力适合处理大量数据。HDFS松...

  • 11张图了解HDFS的架构设计

    HDFS 介绍 HDFS 是一个适合部署在廉价机器上的,具有高度容错性的,高吞吐量的分布式文件系统。 HDFS 的...

  • linux文件相关操作

    查看文件大小 1、查看指定文件的大小(M):du -sk -filename 2、统计当前文件夹大小:du -sh...

  • kafka运行后添加多个数据目录

    kafka集群中有些服务器磁盘IO util很高导致机器load居高不下,想把这些机器的partition数据文件...

  • 【2019-01-05】hdfs du统计与hdfs df统计不

    问题现象 某hadoop集群,通过du命令统计文件总大小为50T;但是hdfs df和hdfs 原生界面统计大小为...

  • Hiveserver2阻塞原因排查

    背景 在修改表location与默认的hdfs机器不一致导致hiveserver2阻塞 排查 使用jstack排查...

  • HDFS 命令

    HDFS就是Hadoop分布式文件系统,它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的...

网友评论

      本文标题:hdfs du -sk 导致机器load高

      本文链接:https://www.haomeiwen.com/subject/gmbvmxtx.html