HDFS归档文件提取咨询:如何从myArch.har恢复原文件
提取Hadoop HAR归档文件内容的方案
集群内直接提取(归档仍在HDFS上)
如果myArch.har还存储在HDFS的/Files路径下,直接用HDFS命令即可提取:
- 提取归档内所有文件到目标HDFS目录:
或者使用hdfs dfs -cp /Files/myArch.har/* /your/target/hdfs/dirdistcp(适合大规模数据):hadoop distcp /Files/myArch.har/* /your/target/hdfs/dir - 提取单个指定文件:
hdfs dfs -cp /Files/myArch.har/SmallFiles/your_filename /your/target/hdfs/dir
本地提取(已下载HAR组件到本地)
你已经下载了index、masterindex、part-0这三个HAR核心文件,需借助Hadoop客户端工具完成本地提取:
- 确保本地安装并配置好对应版本的Hadoop客户端
- 先查看归档内的文件列表:
(注意:hadoop fs -ls har://file:///path/to/your/local/myArch.har/SmallFiles/path/to/your/local/myArch.har是你存放三个HAR文件的本地目录路径) - 提取全部文件到本地目录:
hadoop fs -cp har://file:///path/to/your/local/myArch.har/SmallFiles/* file:///path/to/your/local/extract_dir - 提取单个文件:
hadoop fs -cp har://file:///path/to/your/local/myArch.har/SmallFiles/your_filename file:///path/to/your/local/extract_dir
注意事项
- 必须保证本地Hadoop客户端版本与创建HAR文件的集群版本一致,否则可能出现解析错误
- 不建议手动解析
index和part-0文件提取数据,过程繁琐且易出错
内容的提问来源于stack exchange,提问作者nada zayed
相关产品推荐
相关产品推荐

