2017-07-26 10 views
1

2.2.0より前はSparkがHive 2.Xと通信できなかったので、Hive 1 + Spark 1/2を使用していた。私は両方で読んでいるもののために:Spark 2.2.0を使用してHiveメタストア2.xから読み取る

https://issues.apache.org/jira/browse/SPARK-18112 https://spark.apache.org/releases/spark-release-2-2-0.html

をそれには、Spark 2 +ハイブ2を使用できるようになりましたが、私はまだいくつかの問題に直面しています。コンパイル済みの火花無し-のHadoopを使用して、時間的ハイブテーブルにアクセスするとき、私は次のエラーを取得する:

Exception in thread "main" java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found. at org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:845) at io.bigdatabenchmark.v2.queries.q05.LogisticRegression$.main(LogisticRegression.scala:87) at io.bigdatabenchmark.v2.queries.q05.LogisticRegression.main(LogisticRegression.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:755) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

私は通常、オプションでスパークの自分自身のバージョンをコンパイルすることによってこの問題を解決する「-Phive -Phive -thriftserver "に設定されていますが、デフォルトでSparkはHive 1.2.1バインディングをビルドします。

Spark 2.2.0はSpark 2 - > Hive 2バインディングの問題を解決しますが、スキーマ2.xを使用してメタストアにアクセスできるようにコンパイルする適切な方法を見つけることができません。

ありがとうございました!

答えて

0

あなたのMavenプロジェクトに以下の依存関係を追加してください。

<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-hive_2.11</artifactId> 
     <version>2.2.0</version> 
     <scope>provided</scope> 
</dependency> 
+0

一般フォルダ(/spark-2.2.0/pom.xml)にし、SQLプロジェクトの両方のpom.xmlに新しい依存関係を追加するとき、私は/(コンパイルを完了することができませんよspark-2.2.0/sql/hive/pom.xml)。どちらのテストでも、私は次のエラーを受け取ります: '[エラー] /home/alejandro/Documents/projects/spark/spark-2.2.0/sql/hive/src/main/scala/org/apache/spark/sql/ハイブ/ HiveStrategies.scala:165:タイプの不一致。 [エラー]が見つかりました:org.apache.spark.sql.catalyst.catalog.CatalogTable [エラー]必須:org.apache.spark.sql.hive.MetastoreRelation' –

+0

私は私の答えの依存関係を更新しました。それが役に立ったら教えてください。 –

+0

今回はコンパイルが正常に終了しましたが、メタストアからの読み込みを試みると '例外が発生しました。 'main" java.lang.IllegalArgumentException:Hiveクラスが見つからないため、HiveサポートでSparkSessionをインスタンス化できませんでした。 " おそらく私それが属していないところに依存関係を置いている。 –

関連する問題