【发布时间】:2017-09-29 12:27:30
【问题描述】:
我正在尝试将 mapreduce 上的 hive 2.1.1 切换为 spark 上的 hive。正如在 spark 官方网站上的 hive 中所说,我在没有 hive 的情况下构建了一个spark 1.6.0(对于 hive 2.1.1 源代码 POM 中的 spark rev)。 Spark 在 spark-submit/spark-shell 测试中运行良好。我设置了
spark.executor.cores/spark.executor.memory
在hive-site.xml中,也限制了这2个
SPARK_WORKER_CORES/SPARK_WORKER_MEMORY
在spark-env.sh。但是在我从 hive cli 开始像 select count(*) 这样的 hive 查询后,spark master web UI 中的作业始终应用了 0 个 CPU 内核,因此该作业没有执行,并且 hive 查询在 cli 中一直等待。并且 Spark 集群设置在 docker 环境中,每台服务器都是在服务器上运行的 docker 容器,最多添加 160 个内核/160g 内存。在我设置 SPARK_WORKER_CORES/SPARK_WORKER_MEMORY 之前,总是应用 156 个内核,这也会导致没有足够资源的故障。在我将 SPARK_WORKER_CORES/SPARK_WORKER_MEMORY 设置为限制为分配给 docker 容器的资源后,应用 0。
我在这个问题上卡住了 2 天,没有任何进展。希望任何熟悉 docker 上的 hive 或在 docker env 上运行 hive/spark 的人提供一些提示。
【问题讨论】:
标签: apache-spark docker hive