【发布时间】:2019-09-21 09:24:08
【问题描述】:
我设置了一个包含 spark 2.3.2、hive 2.3.3 和 hbase 1.4.7 的 AWS EMR 集群。如何配置 spark 以访问 hive 表?
我已经采取了以下步骤,但结果是错误消息:
java.lang.ClassNotFoundException: java.lang.NoClassDefFoundError: 创建 Hive 客户端时的 org/apache/tez/dag/api/SessionNotRunning 使用类路径:
请确保您的 hive 和 hadoop 版本的 jar 是 包含在传递给 spark.sql.hive.metastore.jars 的路径中
步骤:
-
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/*
-
在 zeppelin 中,我创建了一个 spark 会话:
val spark = SparkSession.builder.appName("clue").enableHiveSupport().getOrCreate() 导入 spark.implicits._
【问题讨论】:
标签: apache-spark hive apache-spark-sql amazon-emr