【发布时间】:2017-08-20 10:43:38
【问题描述】:
我在 python 中编写了一个通过流 jar 包运行的 MR 作业。我想知道如何使用批量加载将数据放入 HBase。
我知道有两种方法可以通过批量加载将数据导入 hbase。
- 在 MR 作业中生成 HFiles,并使用 CompleteBulkLoad 将数据加载到 hbase。
- 使用 ImportTsv 选项,然后使用 CompleteBulkLoad 加载数据。
我不知道如何使用 python 生成 HFile 来适应 Hbase。然后我尝试使用 ImportTsv 实用程序。却遭遇失败。我按照这个[示例]中的说明进行操作(http://hbase.apache.org/book.html#importtsv)。但是我得到了异常:
线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter/Filter...
现在我想问三个问题:
- 是否可以使用 Python 通过流 jar 生成 HFile。
- 如何使用 importtsv。
- 可以使用批量加载来更新 Hbase 中的表。我每天都会收到一个大于 10GB 的大文件。可以使用 bulkload 将文件推送到 Hbase。
hadoop版本为:Hadoop 2.8.0
hbase版本为:HBase 1.2.6
两者都以独立模式运行。
感谢您的任何回答。
--- 更新 ---
ImportTsv 工作正常。
但我仍然想知道如何通过 Python 语言流式传输 jar 在 MR 作业中生成 HFile。
【问题讨论】:
标签: python hadoop hbase bulk-load