一、引起磁盘倾斜不均衡的可能原因有哪些
(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