【发布时间】:2017-07-26 10:28:36
【问题描述】:
在 2.2.0 版本之前,Spark 无法与 Hive 2.X 通信,因此我无法使用 Hive 1 + Spark 1/2。对于我在这两个方面所读到的内容:
https://issues.apache.org/jira/browse/SPARK-18112 https://spark.apache.org/releases/spark-release-2-2-0.html
现在可以使用 Spark 2 + Hive 2,但我仍然面临一些问题。使用预编译的 Spark-without-hadoop,在访问临时配置单元表时出现以下错误:
线程“main”java.lang.IllegalArgumentException 中的异常:无法使用 Hive 支持实例化 SparkSession,因为找不到 Hive 类。 在 org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:845) 在 io.bigdatabenchmark.v2.queries.q05.LogisticRegression$.main(LogisticRegression.scala:87) 在 io.bigdatabenchmark.v2.queries.q05.LogisticRegression.main(LogisticRegression.scala) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:755) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) 在 org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我通常通过使用选项“-Phive -Phive-thriftserver”编译我自己的 Spark 版本来解决此问题,但默认情况下,Spark 将使用 Hive 1.2.1 绑定进行构建,如文档中所示。
所以,Spark 2.2.0 似乎解决了 Spark 2 -> Hive 2 绑定的问题,但我找不到合适的方法来编译它,以便它可以访问具有架构 2.x 的元存储。
感谢您的帮助!
【问题讨论】:
标签: hadoop apache-spark hive metastore