以下是我正在嘗試執行的操作:關於如何通過HFile將協議緩衝區文件批量加載到HBase的任何想法?
將數據從Hive加載到由協議緩衝區序列化的HBase中。
我試過多種方法:
直接創建連接到HBase的,做付諸HBase的。這工作,但顯然不是很有效。
我導入的JSON表出從配置單元在S3,並將它們存儲作爲TEXTFILES(由製表符分隔),然後使用importTsv實用程序來生成和HFILE批量加載它們變成HBase的,這也適用。
但現在我想在一個更有效的方式來實現這一目標:
出口我從S3蜂巢表中的數據,它們序列化到協議緩衝區對象,然後生成HFILE並直接安裝HFILE到HBase的。
我使用Spark作業從Hive中讀取,並且可以給我JavaRDD,然後我可以構建我的協議緩衝區對象,但是我不知道如何從那裏繼續。
所以我的問題:如何從協議緩衝區對象生成HFile。 我們不想將它們保存爲本地磁盤或HDFS上的文本文件,我如何從那裏直接生成HFile?
非常感謝!
_「使用Spark job ... do放入HBase ...效率不高」_ >>您是否使用異步HBase接口,並且每個執行器使用一個「BufferedMutator」?參看https://hbase.apache.org/book.html#_basic_spark *(注意'HBaseContext'需要HBase 2.x https://issues.apache.org/jira/browse/HBASE-13992或CDH版本的HBase 1.x,因爲Apache的後端口尚未發佈https://issues.apache.org/jira/browse/HBASE-14160)* –
谷歌有關'spark hfileoutputformat'的查詢指向幾個有趣的帖子,包括_「使用Spark高效批量加載HBase」_ http://www.opencore.com/blog/2016/10/efficient-bulk-load-of-hbase-using-spark/ –