Hadoop更换du命令降低datanode磁盘IO
2019/10/10/17:46:07 阅读:1846 来源:谷歌SEO算法 标签:
微信公众号
Hadoop是一个比较好用的分布式系统基础架构了,下面我们来到各位介绍Hadoop更换du命令降低datanode磁盘IO例子,希望对各位带来帮助.
背景介绍:近期,不少datanode节点的磁盘IO比较高,主要原因还是由于job数量的增多,以及规模的增大.
但任何可以降低磁盘IO消耗的手段,我们都可以尝试一下,比如,我们经常可以看到hdfs用户在执行"du -sk"命令:
- [root@idc1-server2~]#ps-ef|grep"du-sk"
- hdfs1711910336100:57?00:00:04du-sk/data1/dfs/dn/current/BP-1281416642-10.100.1.2-1407274717062
- hdfs1714210336100:57?00:00:03du-sk/data5/dfs/dn/current/BP-1281416642-10.100.1.2-1407274717062
- hdfs1715110336100:57?00:00:05du-sk/data6/dfs/dn/current/BP-1281416642-10.100.1.2-1407274717062
- ...//phpfensi.com
随着datanode上的数据不断增加,这样频繁的du操作,会耗时比较长,在CPU和磁盘IO很闲的时候,每次也都会耗时5秒左右,而在服务器负载比较高的时候,这样的操作就会耗时很长时间.
于是,我们便考虑通过将原有的du命令替换,并基于df命令来编写一个新的du命令来取而代之,代码如下:
- [root@idc1-server2~]#mv/usr/bin/du/usr/bin/du.orig
- [root@idc1-server2~]#vim/usr/bin/du
- #!/bin/sh
- mydf=$(df-Pk$2|grep-vE'^Filesystem|tmpfs|cdrom'|awk'{print$3}')
- echo-e"$mydft$2"
- [root@idc1-server2~]#chmod+x/usr/bin/du
不过这样的话,统计出来的结果不就不准确了吗?
但具体情况具体应对,一般来说,Hadoop的datanode都会采用不同的磁盘并划分分区来存储数据,那么使用df统计出来的结果,误差应该是很小的.
热门评论