2017-10-10 264 views
0

最近我們升級到Spark 1.6並嘗試將SparkQL用作Hive的默認查詢引擎。 Spark Gateway角色與HiveServer2添加在同一臺計算機上,啓用了Spark On Yarn Service。然而,當我運行一個查詢類似以下內容:Hive上的Spark進度條陷入10%

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

我們看到工作由紗線接受,資源分配和狀態卻說它正在運行,這表明10%的不斷進步,不會再往前走在Hue或Yarn UI中。 From Hue 如果我們檢查Spark UI作業完成,並且實際上看到HDFS上的輸出: output from Spark UI 有沒有人遇到過類似的問題?任何線索如何調試此類行爲? 我使用Cloudera CDH 5.12

+0

看起來你的執行已經結束。與火花和蜂巢的會議仍然開放。帶有火花和其他類型數據的紗線的執行進度稍有不同。這通常發生在使用spark-shell時,進度始終爲10%。如果Hive在每個會話中打開這樣的連接,這可能是問題所在。特茲的工作有點不同。 –

+0

@ThiagoBaldim有沒有辦法關閉會議?任何解決方法? – madbitloman

回答

0

找到了答案。最近有一個patch released來解決這個問題。缺陷和功能之間浮動:

當蜂巢會話發起,並提交一個查詢到 星火處理引擎,蜂箱 維護一個或多個星火執行人集羣,直到會議結束。 Spark處理引擎的初始設置時間密集。爲了避免 必須爲提交的每個查詢 創建新的Spark處理引擎,Hive會爲每個Hive會話維護一個Spark應用程序主文件(YARN Spark 驅動程序)以及一個或多個Spark執行程序。然而, 的折衷是Spark組件將消耗YARN上的資源 ,儘管它們可能處於空閒階段,在查詢之間,長時間處於 。

所以要解決這個問題,如果沒有補丁,你應該終止Hive會話或者在查詢完成後切換回MapReduce QL引擎。如果您使用Hue,則只有第二種選擇。