Spark上的Hive进度条卡在10%

时间:2017-10-10 21:28:58

标签: hadoop apache-spark hive yarn cloudera-cdh

最近我们升级到Spark 1.6并尝试使用SparkQL作为Hive的默认查询引擎。使用HiveServer2在同一台计算机上添加Spark Gateway角色,并启用Spark On Yarn Service。但是,当我运行如下查询时:

SET hive.execution.engine=spark;
INSERT OVERWRITE DIRECTORY '/user/someuser/spark_test_job' SELECT country, COUNT(*) FROM country_date GROUP BY country; 

我们看到作业已被Yarn接受,已分配资源且状态显示正在运行,但是,它显示10%的持续进度,并且在Hue或Yarn UI中不再进一步。 From Hue 如果我们检查Spark UI作业是否完成,我实际上在HDFS上看到了一个输出: output from Spark UI 有没有人遇到过类似的问题?有什么线索如何调试这种行为? 我使用Cloudera CDH 5.12

2 个答案:

答案 0 :(得分:0)

找到答案。最近有patch released来解决这个问题。在bug和功能之间浮动:

  

启动Hive会话时,会将查询提交给   Spark处理引擎,Hive维护一个或多个Spark Executors   群集直到会话终止。最初的设置   火花处理引擎是时间密集的。避免开销   必须为每个查询创建一个新的Spark处理引擎   提交后,Hive维护一个Spark Application Master(YARN Spark   驱动程序)和每个Hive会话的一个或多个Spark Executor。该   然而,权衡是Spark组件将消耗资源   虽然他们可能处于闲置阶段,但在查询之间,对于YARN   很长一段时间。

因此,为了在没有补丁的情况下修复此问题,您应该终止Hive会话或在查询完成后切换回MapReduce QL引擎。如果您使用Hue,则只有第二种选择。

答案 1 :(得分:-1)

从我过去的经历中分享这一点。请阅读这篇文章:

https://community.cloudera.com/t5/Advanced-Analytics-Apache-Spark/Hive-on-Spark-tasks-never-finish/td-p/52565

希望它有所帮助。