在版本2.2.0之前,Spark無法與Hive 2.X通信,所以我被Hive 1 + Spark 1/2卡住了。對於我讀兩種:使用Spark 2.2.0從Hive metastore 2.x讀取
https://issues.apache.org/jira/browse/SPARK-18112 https://spark.apache.org/releases/spark-release-2-2-0.html
現在可以使用星火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)
我通常通過編譯我自己的Spark版本的選項解決這個問題「-Phive -Phive -thriftserver「,但默認情況下,Spark將使用Hive 1.2.1綁定進行構建,如文檔中所示。
因此,看起來Spark 2.2.0解決了Spark 2 - > Hive 2綁定的問題,但我無法找到合適的方式來編譯它,因此它可以訪問模式2.x的Metastore。
感謝您的幫助!
我無法在普通文件夾(/spark-2.2.0/pom.xml)和sql項目(/)中添加pom.xml中的新依賴項時完成編譯,火花2.2.0/SQL /蜂巢/ pom.xml中)。在這兩個測試中,我收到以下錯誤: '[error] /home/alejandro/Documents/projects/spark/spark-2.2.0/sql/hive/src/main/scala/org/apache/spark/sql/配置單元/ HiveStrategies.scala:165:類型不匹配; [error] found:org.apache.spark.sql.catalyst.catalog.CatalogTable [error] required:org.apache.spark.sql.hive.MetastoreRelation' –
我在我的答案中更新了依賴關係。讓我知道這是否有幫助。 –
這次圍繞編譯成功完成,但是當試圖從元存儲讀取時,我得到:'線程中的異常「main」java.lang.IllegalArgumentException:無法實例化Hive支持的SparkSession,因爲找不到Hive類。「 可能是我將依賴關係放在它不屬於的地方。 –