我应该使用哪个适用于 Spark 2.0 的 HBase 连接器?
Which HBase connector for Spark 2.0 should I use?
我们的堆栈由 Google Data Proc (Spark 2.0) 和 Google BigTable (HBase 1.2.0) 组成,我正在寻找适用于这些版本的连接器。
Spark 2.0 和新的 DataSet API 支持对于我找到的连接器我不清楚:
- spark-hbase : https://github.com/apache/hbase/tree/master/hbase-spark
- spark-hbase-连接器 : https://github.com/nerdammer/spark-hbase-connector
- hortonworks-spark/shc : https://github.com/hortonworks-spark/shc
该项目是使用 SBT 在 Scala 2.11 中编写的。
感谢您的帮助
更新:SHC 现在似乎可以与 Spark 2 和 Table API 一起使用。参见 https://github.com/GoogleCloudPlatform/cloud-bigtable-examples/tree/master/scala/bigtable-shc
原回答:
我认为这些(或任何其他现有连接器)中的任何一个都不能满足您今天的所有需求。
- spark-hbase 发布时可能是正确的解决方案(HBase 1.4?),但目前仅构建在 head 和 is still working on Spark 2 support.
- spark-hbase-connector 似乎只支持 RDD APIs,但由于它们更稳定,可能会有一些帮助。
- hortonworks-spark/shc 可能行不通,因为我相信它只支持 Spark 1 并使用较旧的 HTable APIs不适用于 BigTable.
我建议只使用 HBase MapReduce APIs 和 RDD 方法,如 newAPIHadoopRDD(或者可能是 spark-hbase-connector?)。然后手动将 RDD 转换为 DataSet。这种方法在 Scala 或 Java 中比 Python.
容易得多
这是 HBase 社区正在努力改进的领域,Google Cloud Dataproc 将在这些改进发生时将其纳入。
除了上述答案,使用 newAPIHadoopRDD
意味着,您从 HBase 获取所有数据,从那时起,它的所有核心火花。您不会获得任何特定于 HBase 的 API,例如过滤器等。
而目前的spark-hbase,只有snapshot可用。
我们的堆栈由 Google Data Proc (Spark 2.0) 和 Google BigTable (HBase 1.2.0) 组成,我正在寻找适用于这些版本的连接器。
Spark 2.0 和新的 DataSet API 支持对于我找到的连接器我不清楚:
- spark-hbase : https://github.com/apache/hbase/tree/master/hbase-spark
- spark-hbase-连接器 : https://github.com/nerdammer/spark-hbase-connector
- hortonworks-spark/shc : https://github.com/hortonworks-spark/shc
该项目是使用 SBT 在 Scala 2.11 中编写的。
感谢您的帮助
更新:SHC 现在似乎可以与 Spark 2 和 Table API 一起使用。参见 https://github.com/GoogleCloudPlatform/cloud-bigtable-examples/tree/master/scala/bigtable-shc
原回答:
我认为这些(或任何其他现有连接器)中的任何一个都不能满足您今天的所有需求。
- spark-hbase 发布时可能是正确的解决方案(HBase 1.4?),但目前仅构建在 head 和 is still working on Spark 2 support.
- spark-hbase-connector 似乎只支持 RDD APIs,但由于它们更稳定,可能会有一些帮助。
- hortonworks-spark/shc 可能行不通,因为我相信它只支持 Spark 1 并使用较旧的 HTable APIs不适用于 BigTable.
我建议只使用 HBase MapReduce APIs 和 RDD 方法,如 newAPIHadoopRDD(或者可能是 spark-hbase-connector?)。然后手动将 RDD 转换为 DataSet。这种方法在 Scala 或 Java 中比 Python.
容易得多这是 HBase 社区正在努力改进的领域,Google Cloud Dataproc 将在这些改进发生时将其纳入。
除了上述答案,使用 newAPIHadoopRDD
意味着,您从 HBase 获取所有数据,从那时起,它的所有核心火花。您不会获得任何特定于 HBase 的 API,例如过滤器等。
而目前的spark-hbase,只有snapshot可用。