apache-spark - CDH 6.2 Hive 无法在 Spark 和 MapReduce 上执行查询
问题描述
我正在尝试select count(*) from table
在 Hive 上运行一个简单的查询,但它失败并出现以下错误:
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。我尝试设置to的spark.home
属性,并将环境变量设置为相同的值,但没有任何区别。hive-site.xml
/opt/cloudera/parcels/CDH/lib/spark/
SPARK_HOME
此处报告了类似的问题,但无法应用解决方案(即,将spark-assembly.jar
文件放在 Hive 的目录中)(因为该文件不再构建在最新的 Spark 版本中)。lib
上一个问题解决了一个类似但不同的问题,与 YARN 的内存限制有关。
此外,切换到 MapReduce 作为执行引擎仍然失败,但出现不同的错误:
FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. org/apache/hadoop/hdfs/protocol/SystemErasureCodingPolicies
在谷歌上寻找最新的错误根本没有结果。
更新:我发现当通过其他工具(例如 Beeline、Hue、Spark)连接到 Hive 并且独立于底层执行引擎(即 MapReduce 或 Spark)时,查询确实有效。因此,错误可能存在于当前已弃用的 Hive CLI 中。
更新 2:在 Beeline 和 Hue 上使用 CREATE TABLE 查询实际上发生了同样的问题;我只能使用 Zeppelin 的 Hive 解释器来执行它
解决方案
推荐阅读
- node.js - 我们可以在 nodejs express 应用程序中使用 cookie 进行状态管理吗?
- python - 事件中心中具有不同分区键的事件批次
- c - C 编程 - 关于 while 循环再次提示用户问题
- excel - 使用excel宏添加连续数字并粘贴到空白单元格中
- laravel - 从 aws lambda 上传到 s3 存储桶后出现内部服务器错误
- django - 我的ajax Post或views.py文件中的代码没有被检索到音频有什么问题
- c++ - 我的粒子数组不起作用(C++/粒子系统)
- python - Python Flask 使用解码的 request.content 发送 pdf 文件
- google-cloud-platform - GCP BigQueryOperator 表过期
- android - 协程流程:不确定如何将游标转换为此方法的返回类型