这是我正在尝试做的事情:
将来自Hive的数据加载到由协议缓冲区序列化的HBase中。
我尝试过多种方式:
直接创建与HBase的连接,然后进入HBase。这有效,但显然效率不高。
我在S3中从Hive导出了json表并将它们存储为文本文件(用制表符分隔),然后使用importTsv实用程序生成HFile并将它们批量加载到HBase中,这也有效。
< / LI> 醇>但现在我想以更有效的方式实现这一目标:
从S3中的Hive表导出我的数据,将它们序列化为协议缓冲区对象,然后生成HFile并将HFile直接挂载到HBase上。
我正在使用Spark作业从Hive读取,这可以给我JavaRDD,然后我可以构建我的协议缓冲区对象,但我不知道如何从那里继续。
所以我的问题是:如何从协议缓冲区对象生成HFile。 我们不想将它们保存为本地磁盘或HDFS上的文本文件,如何从那里直接生成HFile?
非常感谢!
答案 0 :(得分:0)
感谢@Samson指向那个很棒的帖子。
经过试验和错误,我得到了一些工作。 只是为了拯救他人的痛苦,这就是工作example。
它的作用: 它使用Spark从S3读取数据,将它们重新分配到相应的区域,生成HFile。