我应该使用哪种HBase HBase连接器?

oge*_*gen 11 hbase scala apache-spark google-cloud-bigtable google-cloud-dataproc

我们的堆栈由Google Data Proc(Spark 2.0)和Google BigTable(HBase 1.2.0)组成,我正在寻找使用这些版本的连接器.

对于我找到的连接器,我不清楚Spark 2.0和新的DataSet API支持:

该项目使用SBT在Scala 2.11中编写.

谢谢你的帮助

Pat*_*lay 7

更新:SHC现在似乎可以与Spark 2和Table API一起使用.请参阅https://github.com/GoogleCloudPlatform/cloud-bigtable-examples/tree/master/scala/bigtable-shc

原始答案:

我不相信任何这些(或任何其他现有连接器)将完成您今天想要的所有工作.

  • spark-hbase在它发布时可能是正确的解决方案(HBase 1.4?),但目前只能在头部构建,并且仍在使用Spark 2支持.
  • spark-hbase-connector似乎只支持RDD API,但由于它们更稳定,可能会有所帮助.
  • hortonworks-spark/shc可能无法正常工作,因为我认为它只支持Spark 1并使用不适用于BigTable的旧HTable API.

我建议只使用HBase MapReduce API和RDD方法,如newAPIHadoopRDD(或者可能是spark-hbase-connector?).然后手动将RDD转换为DataSet.在Scala或Java中,这种方法比Python更容易.

这是HBase社区正在努力改进的领域,Google Cloud Dataproc将在这些改进发生时将其纳入其中.

  • 看起来hortonworks发布了Spark 2的一个版本:https://github.com/hortonworks-spark/shc/tree/v1.0.1-2.0 (2认同)