【问题标题】:hive on spark, always wrong executor_cores in job application from spark master web UI火花上的蜂巢,来自火花主 Web UI 的作业应用程序中的 executor_cores 总是错误的
【发布时间】: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


    【解决方案1】:

    我认为 spark 执行引擎根本不适合 hive。您尝试与 spark 集成的 hive 版本是 built with spark 2.0.0 and not 1.6.0 之前对此进行了很多讨论。 See the thread here 您最好使用 Tez,因为许多用户在该线程上报告。

    【讨论】:

    • 很遗憾知道,仍然非常感谢您的信息,我会尝试 Tez 而不是与 spark 挣扎。
    • 现在我使用的是 hive 2.1.1,根据您的经验应该使用哪个 Tez rev?或者根据您的经验,hive rev 与 Tex rev which 相得益彰?
    • 顺便说一句,我不使用HDP,直接使用GNU hadoop 2.6。
    • 它使用 tez 版本 0.8.4 [检查 pom 文件中的 hive ](github.com/apache/hive/blob/master/pom.xml#L191)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多