我已经设置了一个aws emr集群,其中包括spark 2.3.2、hive 2.3.3和hbase 1.4.7。如何配置spark以访问配置单元表?
我已执行以下步骤,但结果是错误消息:
java.lang.classnotfoundexception:java.lang.noclassdeffounderror:org/apache/tez/dag/api/sessionnotrunning使用类路径创建配置单元客户端时:
请确保传递到spark.sql.hive.metastore.jars的路径中包含用于您的hive和hadoop版本的JAR
步骤: cp /usr/lib/hive/conf/hive-site.xml /usr/lib/spark/conf
在 /usr/lib/spark/conf/spark-defaults.conf
补充:
spark.sql.hive.metastore.jars/usr/lib/hadoop/lib/:/usr/lib/hive/lib/
在齐柏林飞艇中,我创建了一个spark会话:
val spark=sparksession.builder.appname(“clue”).enablehivesupport().getorcreate()导入spark.implicits_
1条答案
按热度按时间kzmpq1sx1#
你提到的第(1,&2)步,除了可能对你有帮助的一些小调整外,还可以做一些局部的调整。
既然你用的是
hive-2.x
,配置spark.sql.hive.metastore.jars
设置为maven
取而代之的是spark.sql.hive.metastore.version
以匹配元存储的版本2.3.3
. 只要使用就足够了2.3
作为版本,请参阅apachespark代码中的why下面是我在中设置的工作配置示例
spark-default.conf
:通过前面的设置,我可以对齐柏林飞艇中的数据仓库执行如下查询:
有关连接到外部配置单元元存储的更多详细信息,请参见此处(databricks)