这是我正在尝试做的事情:
将数据从 Hive 加载到由协议缓冲区序列化的 HBase 中。
我尝试了多种方法:
直接创建与 HBase 的连接并放入 HBase。这有效,但显然效率不高。
我从 S3 中的 Hive 导入 json 表并将它们存储为文本文件(由选项卡分隔),然后使用 importTsv 实用程序生成 HFile 并将它们批量加载到 HBase 中,这也可以。
但现在我想以更有效的方式实现这一目标:
从 S3 中的 Hive 表中导出我的数据,将它们序列化为协议缓冲区对象,然后生成 HFile 并将 HFile 直接挂载到 HBase 上。
我正在使用 Spark 作业从 Hive 读取数据,这可以给我 JavaRDD,然后我可以构建我的协议缓冲区对象,但我不知道如何从那里开始。
所以我的问题是:如何从协议缓冲区对象生成 HFile。我们不想将它们保存为本地磁盘或 HDFS 上的文本文件,如何直接从那里生成 HFile?
非常感谢!