我想做的是:
将数据从配置单元加载到协议缓冲区序列化的hbase中。
我试过多种方法:
直接创建到hbase的连接并将其放入hbase。这是可行的,但显然效率不高。
我从s3中的配置单元中导入json表,并将它们存储为文本文件(用tab分隔),然后使用importtsv实用程序生成hfile并将它们批量加载到hbase中,这同样有效。
但现在我想以一种更有效的方式实现这一点:
从s3中的配置单元表导出数据,将它们序列化为协议缓冲区对象,然后生成hfile并将hfile直接装载到hbase上。
我正在使用spark job从hive读取数据,这可以给我javardd,然后我可以构建我的协议缓冲区对象,但是我不知道如何从那里开始。
所以我的问题是:如何从协议缓冲区对象生成hfile。我们不想将它们保存为本地磁盘或hdfs上的文本文件,如何从那里直接生成hfile?
谢谢!
1条答案
按热度按时间yvt65v4c1#
感谢@samson指向那篇很棒的帖子。
经过反复试验,我终于成功了。为了省去别人的痛苦,这里有一个有效的例子。
它所做的:它使用spark从s3读取数据,将它们重新划分到相应的区域,生成hfiles。