繁体   English   中英

兼容 Spark 的 Hive 版本

[英]Hive version compatible with Spark

每天我都变得越来越困惑。 我正在学习将 spark 与 hive 一起使用,我在互联网上找到的每个教程都模糊地解释了这种关系首先,当人们说hive compatible with spark时是什么意思。我下载了预构建的 spark,它的版本是 2.1.1,然后我下载了 hive 2.1.1. 我的目标是从 spark 访问 hive Metastore 但每次运行 spark 查询时我都会得到

Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

哪个根据这个网站

如果您的 Metastore 版本不匹配,则最后两个 SQL 语句中的一个或两个都将导致此错误消息:错误:java.lang.reflect.InvocationTargetException (state=,code=0)

我感到困惑的是,当人们说 hive spark 兼容性时,他们的意思是 spark 版本和 hive 版本吗? 在我的情况下,两者都是 2.1.1(但我收到此错误),或者它们的意思是metastore database schema version and hive-metastore jar version inside spark/jars folder

现在我的 hive Metastore-schema 版本是 2.1.0 并且我有hive-metastore-1.2.1.spark2.jar ,那么我需要将 hive-metastore-schema 版本更改为 1.2.1 吗? 根据这个网站

为了处理当前随 Hive 1.2 jar 一起提供的 Spark 2.1.0,用户需要使用 Hive 远程元存储服务 (hive.metastore.uris),其中元存储服务以 hive.metastore.schema.verification 为 TRUE 启动,对于任何Spark SQL 上下文。 这将强制 Spark 客户端使用较低版本的 Hive jar(如 Hive 1.2)与更高版本的 Hive 元存储(如 Hive 2.1.0)对话,而无需修改或改变元存储数据库的现有 Hive 模式。

我确实将hive-schema-verification set to true并且仍然得到同样的错误。另外请花点时间检查spark-website ,他们说

spark.sql.hive.metastore.version 1.2.1(Hive Metastore 的版本。可用选项是 0.12.0 到 1.2.1。)

. 结束我的问题,我的目标是 1) 了解hive compatible with spark背后的含义 2) 使用 spark 连接到 hive Metastore 请尝试详细说明您的答案,或者提供我可以找到答案的链接。 我真的很困惑。

Hive with Spark:如果您遇到与 Metastore 版本相关的错误,则应在 spark defaults.conf 中设置以下元存储 jar 和版本,或在提交时传递,每个 conf 都是单独的参数 --conf spark.sql.hive.metastore.jars= /home/hadoopuser/hivemetastorejars/* --conf spark.sql.hive.metastore.version=2.3.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM