我正在尝试在Hive上运行一个简单的select count(*) from table
查询,但是由于以下错误而失败:
FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session 5414a8a4-5252-4ccf-b63e-2ee563f7d772_0: java.lang.ClassNotFoundException: org.apache.spark.SparkConf
这是自从我移至CDH 6.2并启用了Spark(版本2.4.0-cdh6.2.0)作为Hive(版本2.1.1-cdh6.2.0)的执行引擎以来发生的事情。
我的猜测是Hive没有正确配置为启动Spark。我尝试将spark.home
的{{1}}属性设置为hive-site.xml
,并将/opt/cloudera/parcels/CDH/lib/spark/
环境变量设置为相同的值,但是没有区别。
报告了类似的问题here,但是无法应用解决方案(即将SPARK_HOME
文件放在Hive的spark-assembly.jar
目录中)(因为该文件已不再内置)最新的Spark版本)。
A previous question解决了一个类似但不同的问题,与YARN的内存限制有关。
此外,由于执行引擎切换到MapReduce仍然失败,但是出现了另一个错误:
lib
在Google上查找最新错误根本没有结果。
更新:我发现在通过其他工具(例如Beeline,Hue,Spark)连接到Hive时,查询确实起作用,并且独立于基础执行引擎(例如MapReduce或Spark)。因此,该错误可能位于当前不推荐使用的Hive CLI中。