8

我們的堆棧是由谷歌數據PROC(星火2.0)和谷歌的BigTable(HBase的1.2.0)的,我期待與這些版本一起工作的連接器。我應該使用哪種適用於Spark 2.0的HBase連接器?

星火2.0和新的DataSet API的支持是我不明白的連接器,我發現:

該項目使用SBT編寫在Scala 2.11中。

感謝您的幫助

回答

7

我不相信任何一個(或任何其他現有的連接器)將盡一切你今天想。

  • 火花HBase的大概會當它是釋放(HBase的1.4?),但目前只在構建頭is still working on Spark 2 support正確的解決方案。
  • 火花HBase的連接器似乎只支持RDD的API,但是因爲它們更穩定,可能有點幫助。
  • hortonworks-spark/shc可能不會工作,因爲我相信它只支持Spark 1並使用舊版HTable API,它們不適用於BigTable。

我會建議只使用HBase的MapReduce的API的使用方法RDD像newAPIHadoopRDD(或可能的火花HBase的連接器?)。然後手動將RDD轉換爲DataSet。在Scala或Java中,這種方法比Python更容易。

這是一個區域,HBase的社會正在努力改進和他們發生谷歌雲Dataproc將包括這些改進。

+0

感謝您的幫助,這是我爲讀取所做的工作,它與'spark.sparkContext.newAPIHadoopRDD(config,classOf [TableInputFormat],classOf [ImmutableBytesWritable],classOf [Result])'工作得很好。我應該如何將這個API用於批量寫入? – ogen

+0

只需使用saveAsNewAPIHadoopDataset(...) – ogen

+2

看起來像hortonworks發佈了Spark 2的一個版本:https://github.com/hortonworks-spark/shc/tree/v1.0.1-2.0 – angelcervera

1

除了上面的回答,用newAPIHadoopRDD意味着,你從HBase的,從那時起,它的所有核心火花的所有數據。你不會得到像過濾器等任何HBase特定的API。 而目前的spark-hbase,只有快照可用。