簡體   English   中英

Hive查詢僅花費大量時間來啟動map-reduce作業

[英]Hive query taking a lot of time just to launch map-reduce jobs

我們正在使用Hive進行臨時查詢,並且擁有一個Hive表,該表分為兩個字段(date,id)

現在,對於每個日期,大約有1400個ID,因此在一天之內會添加許多分區。 實際數據位於s3中。 現在,我們面臨的問題是假設我們從表中進行一個月的select count(*) ,然后僅花費很長的時間(大約1小時52分鍾)即可啟動地圖精簡作業。

當我在Hive verbose模式下運行查詢時,我可以看到它這次的花費實際上決定了要生成多少個映射程序(計算拆分)。 有什么方法可以減少啟動地圖減少工作的滯后時間?

這是此滯后時間內正在記錄的日志消息之一:

13/11/19 07:11:06 INFO mapred.FileInputFormat: Total input paths to process : 1
13/11/19 07:11:06 WARN httpclient.RestS3Service: Response '/Analyze%2F2013%2F10%2F03%2F465' - Unexpected response code 404, expected 200 

這可能是因為使用過度分區的表會導致查詢計划階段花費很長時間。 更糟糕的是,查詢計划階段本身可能比查詢執行階段花費更長的時間。

解決此問題的一種方法是調整Metastore 但是更好的解決方案是設計一個有效的架構並擺脫不必要的分區。 相信我,您真的不需要太多的小分區。

另外,您也可以嘗試在發出查詢之前將hive.input.format設置為org.apache.hadoop.hive.ql.io.CombineHiveInputFormat

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM