当我执行这些命令时,速度非常慢,通常需要5个小时或更长时间才能完成。
hdfs dfsadmin -fetchImage ${t_save_fsimage_path}
# 获取下载的fsimage具体文件路径
t_fsimage_file=`ls ${t_save_fsimage_path}/fsimage*`
# 处理fsimage为可读的csv格式文件
hdfs oiv -i ${t_fsimage_file} -o ${t_save_fsimage_path}/fsimage.csv -p Delimited
# 删除fsimage.csv的首行数据
sed -i -e "1d" ${t_save_fsimage_path}/fsimage.csv
# 创建数据目录
hadoop fs -test -e ${t_save_fsimage_path}/fsimage || hdfs dfs -mkdir -p ${t_save_fsimage_path}/fsimage
# 拷贝fsimage.csv到指定的路径
hdfs dfs -copyFromLocal -f ${t_save_fsimage_path}/fsimage.csv ${t_save_fsimage_path}/fsimage/
2条答案
按热度按时间mu0hgdu01#
您可以使用hfsa lib或hfsa cli工具(取决于您的用例)以编程方式分析fsimage。
pwuypxnk2#
下面的内容特别有助于处理大型问题
fsimage
:设置java堆大小:
export HADOOP_OPTS="-Xmx55G"
使用-t或--temp选项使用临时目录(而不是内存)来缓存中间结果:例如。,hdfs oiv -i fsimage_example -o fsimage_example.csv -p Delimited -delimiter "|" --temp /tmp/fsimage_example