hadoop hdfs 解决磁盘间数据不均衡问题

一、引起磁盘倾斜不均衡的可能原因有哪些 
(1)扩容节点,向集群中添加新的数据节点 
(2)数据节点之间的磁盘大小不一致

二、磁盘倾斜引起的性能问题 
(1)MR程序无法很好地利用本地计算的优势 
(2)机器之间无法达到更好的网络带宽使用率 
(3)机器磁盘无法利用

通过以下脚本可以解决磁盘间数据拷贝以实现磁盘间均衡

#!/bin/bash
src=$1
dest=$2
top=$3
srcDir='/opt/data'$src'/hdfs/current/BP-*/current/finalized'
destDir='/opt/data'$dest'/hdfs/current/BP-*/current/finalized'
#进入当前目录
cd $srcDir
#获取二级子目录空间前十的目录
dir=`du -k --max-depth=2 | sort -nr | awk 'length($2)>15' | head -$top | awk '{print substr($2,2)}'`
#将字符串转化维数组
arr=(${dir// / })  
j=0
for i in ${arr[@]}  
do 
let j=j+1
echo $j 
echo $srcDir$i
if [ -x "$destDir$i" ];then
echo $destDir$i
mv $srcDir$i/* $destDir$i
else
mkdir $destDir$i
echo $destDir$i
mv $srcDir$i/* $destDir$i
fi
done
 

猜你喜欢

转载自blog.csdn.net/mycsdn0523/article/details/86165000