使用spark 2.2.0读取hive metastore 2.x

f3temu5u  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(418)

这个问题在这里已经有答案了

如何创建具有配置单元支持的sparksession(因“未找到配置单元类”而失败)(10个答案)
三年前关门了。
在版本2.2.0之前,spark无法与Hive2.x通信,所以我一直使用Hive1+Spark1/2。我在这两本书中都读到了:
https://issues.apache.org/jira/browse/spark-18112httpshttp://spark.apache.org/releases/spark-release-2-2-0.html
现在可以使用spark 2+hive 2,但我仍然面临一些问题。使用不带hadoop的预编译spark,访问临时配置单元表时会出现以下错误:
线程“main”java.lang.illegalargumentexception中出现异常:无法使用配置单元支持示例化sparksession,因为找不到配置单元类。位于org.apache.spark.sql.sparksession$builder.enablehivesupport(sparksession.com)。scala:845)在io.bigdatabenchmark.v2.querys.q05.logisticregression$.main(logisticregression。scala:87)位于sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)的io.bigdatabenchmark.v2.querys.q05.logisticregression.main(logisticregression.scala)sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。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.com)。scala:119)位于org.apache.spark.deploy.sparksubmit.main(sparksubmit.scala)
我通常通过使用“-phive-phive-thriftserver”选项编译自己版本的spark来解决这个问题,但是默认情况下spark将使用hive1.2.1绑定进行构建,如文档中所示。
因此,spark2.2.0似乎解决了spark2->hive2绑定的问题,但是我找不到合适的方法来编译它,这样它就可以访问模式为2.x的元存储。
谢谢你的帮助!

zqdjd7g9

zqdjd7g91#

向maven项目添加以下依赖项。

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

相关问题