1

我正在使用 HBase 完整批量加载将 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 表时,它仍然是复制而不是剪切。

亲切的问候

4

1 回答 1

2

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

区域服务器日志

文件 hdfs://master.mydomain/user/cluster/mbe/output/fam/8a6f322894784c9c9802e5b295025ee0 在与目标存储不同的文件系统上 - 移动到此文件系统。Copied to temporary path on dst filesystem: hdfs://master.mydomain:8020/hbase/MBE/fd9eab14bf12d1b44ea77aa3d1fc1b31/.tmp/d63966b6d5fa487f88426552d1ca43f4 Moved hfile hdfs://master.mydomain:8020/hbase/MBE/fd9eab14bf12d1b44ea77aa3d1fc1b31/.tmp/d63966b6d5fa487f88426552d1ca43f4进入存储目录 hdfs://master.mydomain:8020/hbase/MBE/fd9eab14bf12d1b44ea77aa3d1fc1b31/fam - 更新存储文件列表。

解决方案

这表明源和目标存储文件位于不同的文件系统上,但它们都位于同一个 HDFS 上。

当我使用“hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hdfs://master.mydomain:8020/user/cluster/mbe/output MBE”而不是“hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles mbe/输出 MBE”,问题就解决了。

使用带有端口号的绝对寻址而不是相对寻址解决了这个问题。

有关更多详细信息,请参阅https://issues.apache.org/jira/browse/HBASE-9537

于 2013-09-16T06:56:41.317 回答