0

这是我正在尝试做的事情:

将数据从 Hive 加载到由协议缓冲区序列化的 HBase 中。

我尝试了多种方法:

  1. 直接创建与 HBase 的连接并放入 HBase。这有效,但显然效率不高。

  2. 我从 S3 中的 Hive 导入 json 表并将它们存储为文本文件(由选项卡分隔),然后使用 importTsv 实用程序生成 HFile 并将它们批量加载到 HBase 中,这也可以。

但现在我想以更有效的方式实现这一目标:

从 S3 中的 Hive 表中导出我的数据,将它们序列化为协议缓冲区对象,然后生成 HFile 并将 HFile 直接挂载到 HBase 上。

我正在使用 Spark 作业从 Hive 读取数据,这可以给我 JavaRDD,然后我可以构建我的协议缓冲区对象,但我不知道如何从那里开始。

所以我的问题是:如何从协议缓冲区对象生成 HFile。我们不想将它们保存为本地磁盘或 HDFS 上的文本文件,如何直接从那里生成 HFile?

非常感谢!

4

1 回答 1

0

感谢@Samson 指出那篇很棒的帖子。

经过反复试验,我得到了工作。只是为了避免其他人的痛苦,这是一个工作示例

它的作用:它使用 Spark 从 S3 读取数据,将它们重新分区到相应的区域,生成 HFile。

于 2017-06-16T22:36:18.643 回答