hadoop - 使用 Spark 2.2.0 从 Hive metastore 2.x 读取

标签 hadoop apache-spark hive metastore

<分区>

在版本 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,访问时态 hive 表时出现以下错误:

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 版本来解决这个问题,但默认情况下,Spark 将使用 Hive 1.2.1 绑定(bind)构建,如文档中所示。

因此,似乎 Spark 2.2.0 解决了 Spark 2 -> Hive 2 绑定(bind)的问题,但我找不到合适的方法来编译它,以便它可以访问具有模式 2.x 的元存储。

感谢您的帮助!

最佳答案

将以下依赖项添加到您的 maven 项目。

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

关于hadoop - 使用 Spark 2.2.0 从 Hive metastore 2.x 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324331/

相关文章:

hadoop - MrJob 花费大量时间 Copy local files into hdfs

hadoop - oozie 4.1.0 Louncher失败,找不到OozieLauncherInputFormat $ EmptySplit

apache-spark - 如何将 Great Expectations 结果从 Apache Spark 保存到文件 - 使用数据文档

csv - 将 csv 数据加载到配置单元外部表时日期变量为 NULL

hadoop - 配置数据类型的配置单元查询失败

hadoop - 无法在终端启动配置单元

hadoop - Gradle 不下载完整的依赖项

scala - IntelliJ 上的 java.lang.StackOverflowError

python - 在 pyspark 中查找类型为 array<double> 的两列之间的余弦相似度

hadoop - 粘性位设置 hive 执行失败拒绝权限