web-dev-qa-db-ja.com

Spark 2.0のどのHBaseコネクタを使用する必要がありますか?

私たちのスタックはGoogle Data Proc(Spark 2.0)とGoogle BigTable(HBase 1.2.0)で構成されており、これらのバージョンで動作するコネクタを探しています。

Spark 2.0と新しいDataSet APIのサポートは、私が見つけたコネクタに対して私には明確ではありません。

プロジェクトはScala 2.11でSBTで記述されています。

ご協力いただきありがとうございます

11
ogen

Update:SHCはSpark 2およびTable APIで動作するようになりました。- https:/を参照してください。 /github.com/GoogleCloudPlatform/cloud-bigtable-examples/tree/master/scala/bigtable-shc

元の答え:

これら(または他の既存のコネクタ)のどれもが、今日あなたが望むすべてを行うとは思いません。

  • spark-hbaseは、リリース(HBase 1.4?)のときにおそらく適切なソリューションになりますが、現在のところビルドは まだ機能しています) Spark 2 support .
  • spark-hbase-connectorはRDD APIのみをサポートしているようですが、それらはより安定しているため、多少役立つ場合があります。
  • hortonworks-spark/shcは、Spark 1のみをサポートし、古いHTableを使用すると信じているため、おそらく機能しませんBigTableで動作しないAPI。

HAPI MapReduce APIをnewAPIHadoopRDD(またはおそらくspark-hbase-connector?)のようなRDDメソッドで使用することをお勧めします。次に、RDDをDataSetsに手動で変換します。このアプローチは、ScalaまたはJavaのほうがPythonよりもはるかに簡単です。

これはHBaseコミュニティが改善に取り組んでいる領域であり、Google Cloud Dataprocはそれらの改善が発生したときにそれらを組み込みます。

7
Patrick Clay

上記の回答に加えて、newAPIHadoopRDDを使用すると、HBaseからすべてのデータが取得され、それ以降はすべてのコアスパークが発生します。フィルターなどのHBase固有のAPIは取得しません。現在のspark-hbaseでは、スナップショットしか使用できません。

2
Ramzy