completebulkload执行“复制”存储文件而不是“剪切”

qvtsj1bj  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(579)

我使用hbase complete bulk load将importtsv的输出传输到hbase中的一个表中,我注意到它复制输出而不是剪切。我的千兆字节数据需要很长时间。
在hbase文档中(http://hbase.apache.org/book/ops_mgt.html#completebulkload)我读到文件会被移动而不是复制。有人能帮我吗?
我使用hbase 0.94.11和hadoop 1.2.1。bulkload输出目录和hbase集群的文件系统也是一样的。
我还使用hfileoutputformat编写了一个mapreduce作业。当我使用loadincrementalhfiles将作业的输出移动到hbase表时,它仍然复制而不是剪切。
谨致问候

yebdmbv4

yebdmbv41#

我注意到区域服务器日志中有以下几行,这会导致复制而不是剪切:

区域服务器日志

文件hdfs://master.mydomain/user/cluster/mbe/output/fam/8a6f322894784c9c9802e5b295025ee0 在不同于目标存储的文件系统上-移动到此文件系统。复制到dst文件系统上的临时路径:hdfs://master.mydomain:8020/hbase/mbe/fd9eab14bf12d1b44ea77aa3d1fc1b31/.tmp/d63966b6d5fa487f88426552d1ca43f4移动文件hdfs://master.mydomain:8020/hbase/mbe/fd9eab14bf12d1b44ea77aa3d1fc1b31/.tmp/d63966b6d5fa487f88426552d1ca43f4到存储目录hdfs://master.mydomain:8020/hbase/mbe/fd9eab14bf12d1b44ea77aa3d1fc1b31/fam-更新存储文件列表。

解决方案

这表明源和目标存储文件位于不同的文件系统上,但它们都位于相同的hdf上。
当我使用“hbase org.apache.hadoop.hbase.mapreduce.loadincrementalhfileshdfs://master.mydomain:8020/user/cluster/mbe/output mbe“代替”hbase org.apache.hadoop.hbase.mapreduce.loadincrementalhfiles mbe/output mbe“,问题得到解决。
用端口号的绝对寻址代替相对寻址解决了这个问题。
有关详细信息,请参阅https://issues.apache.org/jira/browse/hbase-9537

相关问题