2.6.4 DN数据硬链接
创建脚本文件vim DN_asd.sh
编写脚本如下:
#!/bin/bash
##配置文件路径
export CONF_PATH=${HADOOP_HOME}/etc/hadoop
if [ -z "${HADOOP_HOME}" ];then
{
read -p "hadoop配置文件路径获取错误,请输入正确目录路径:" -e FILE_PATH
while [ -z "${FILE_PATH}" ]
do
{
read -p "您输入目录路径为空,请重新输入:" -e FILE_PATH
}
done
CONF_PATH=${FILE_PATH}
}
fi
while [ ! -e "${CONF_PATH}" ]
do
{
read -p "您输入的路径 ${CONF_PATH} 不存在,请重新输入配置文件目录路径:" -e FILE_PATH
export CONF_PATH=${FILE_PATH}
}
done
if [ ! -e "${CONF_PATH}/hdfs-site.xml" ];then
{
read -p "hdfs-site.xml文件不存在,请重新输入正确文件名:" -e FILE_NAME
while [ -z "${FILE_NAME}" ]
do
{
read -p "您的输入为空,请重新输入配置文件:" -e FILE_NAME
}
done
if [ ! -e "${CONF_PATH}/${FILE_NAME}" ];then
{
echo -e "不存在您输入的配置文件路径:\033[31m ${CONF_PATH}/${FILE_NAME}\033[0m"
exit
}
else
##datanode数据目录
DATA_PATH=`grep "dfs.datanode.data.dir" ${CONF_PATH}/${FILE_NAME} -A 1 |tail -n1 |grep -E -o "/.*<" |awk -F '<' '{print $1}'|awk -F ',' '{for (i=1;i<=NF;i++)print $i}'`
fi
}
else
##datanode数据目录
DATA_PATH=`grep "dfs.datanode.data.dir" ${CONF_PATH}/hdfs-site.xml -A 1 |tail -n1 |grep -E -o "/.*<" |awk -F '<' '{print $1}'|awk -F ',' '{for (i=1;i<=NF;i++)print $i}'`
fi
cp_link()
{
cnt=0
if [ ! -z "${DATA_PATH}" ];then
{
for i in ${DATA_PATH}
do
{
cnt=`expr $cnt + 1`
id=$cnt
DNdata_path=`echo $i |grep -o "/.*"`
file_root_path=`df -h ${DNdata_path}|grep -v Filesystem |awk '{print $NF}'`
if [ ! -z "${file_root_path}" ];then
{
link_path=${file_root_path}/Backup_hard_links
##判断路径是否存在
if [ ! -e "${link_path}" ] ; then
{
mkdir -p ${link_path}/file_dir_${id}
}
else
rm -rf ${link_path}/file_dir_${id} && mkdir -p ${link_path}/file_dir_${id}
fi
cp -lr ${DNdata_path} ${link_path}/file_dir_${id}
echo -e "DN硬链路径为:\033[34m ${link_path}/Backup_hard_links \033[0m"
}
else
echo -e "\033[31m ${DNdata_path} 所在磁盘根路径获取异常!!!\033[0m"
exit
fi
}
done
}
else
echo -e "\033[31m datanode数据目录获取异常,请检查配置文件!!!\033[0m"
exit
fi
}
cp_link
执行命令
sh DN_asd.sh
hdfs-site.xml文件名未变更,输入正确的路径
图 2.6.4.1 文件名未改变
hdfs-site.xml文件名发生变更,输入正确路径+正确文件名
图 2.6.4.2文件名改变
验证: 查看所有数据盘的Backup_hard_links目录,示例如下图
图 2.6.4.3 Backup_hard_links目录
注意:硬链接,仅能支持同盘硬链接;硬链之后,已有文件会同步修改,新增文件无法同步。
注意2:使用硬连接会导致磁盘不够用,磁盘空间不足的情况下不建议使用