关于如何通过HFile将协议缓冲区文件批量加载到HBase上的任何想法?

时间:2017-06-01 15:29:16

标签: hadoop apache-spark hbase protocol-buffers hfile

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

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

我尝试过多种方式:

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

  2. 我在S3中从Hive导出了json表并将它们存储为文本文件(用制表符分隔),然后使用importTsv实用程序生成HFile并将它们批量加载到HBase中,这也有效。

    < / LI>

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

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

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

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

    非常感谢!

1 个答案:

答案 0 :(得分:0)

感谢@Samson指向那个很棒的帖子。

经过试验和错误,我得到了一些工作。 只是为了拯救他人的痛苦,这就是工作example

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