HDFS离线图像查看器需要数小时

时间:2018-01-15 16:08:33

标签: hadoop hdfs

当我执行这些命令时,它非常慢并且总是需要五个小时或更长时间才能完成。

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/

enter image description here

2 个答案:

答案 0 :(得分:0)

以下内容在处理大型fsimage时尤其有用:

  1. 设置Java堆大小: export HADOOP_OPTS="-Xmx55G"

  2. 使用-t或--temp选项使用临时目录(而不是内存)来缓存中间结果:例如hdfs oiv -i fsimage_example -o fsimage_example.csv -p Delimited -delimiter "|" --temp /tmp/fsimage_example

答案 1 :(得分:0)

您可以使用HFSA libHFSA cli tool(取决于您的用例)以编程方式分析fsimage。