hive 簡單查詢不走mapreduce

2021-08-30 06:39:53 字數 847 閱讀 4498

在hadoop生態圈中屬於資料倉儲的角色。他能夠管理hadoop中的資料,同時可以查詢hadoop中的資料。

本質上講,hive是乙個sql解析引擎。hive可以把sql查詢轉換為mapreduce中的job來執行。

hive有一套對映工具,可以把sql轉換為mapreduce中的job,可以把sql中的表、字段轉換為hdfs中的檔案(夾)以及檔案中的列。

這套對映工具稱之為metastore,一般存放在derby、mysql中。

hive在hdfs中的預設位置是/user/hive/warehouse,是由配置檔案hive-conf.xml中屬性hive.metastore.warehouse.dir決定的。

hive 0.10.0為了執行效率考慮,簡單的查詢,就是只是select,不帶count,sum,group by這樣的,都不走map/reduce,直接讀取hdfs檔案進行filter過濾。

這樣做的好處就是不新開mr任務,執行效率要提高不少,但是不好的地方就是使用者介面不友好,有時候資料量大還是要等很長時間,但是又沒有任何返回。

1、本地模式下,hive可以簡單的讀取目錄路徑下的資料,然後輸出格式化後的資料到控制台,比如有本地員工employee,當執行 select * from employee 時,直接將檔案中資料格式化輸出。

2、查詢語句中的過濾條件只是分割槽欄位的情況下不會進行mapreduce。

設定:在hive-site.xml裡面有個配置引數叫

hive.fetch.task.conversion = more
將這個引數設定為more,簡單查詢就不走map/reduce了,設定為minimal,就任何簡單select都會走map/reduce。

hive正則查詢會不會走MapReduce

話題 話不多說,咱們直奔主題,我們都知道hive查詢過程中,一些類似select a from a 這樣的語句是不會觸發mapreduce的,但是最近在使用正則regexp做查詢時偶然發現了乙個新玩兒法。不走mr寫法 正則匹配某個欄位的特定值時,在sql最後加乙個limit的限定,是不走mr的,如下...

不走304快取

解決 304狀態碼的方法 出現這種情況我確定是由iis快取引起的iis快取一方面能提高伺服器效能,另一方面卻給 帶來嚴重上的更新問題,那我應該如何手動去清理它呢?接下來教大家乙個手動清理iis快取的方法!首先,看一下 http協議,您會發現從伺服器返回的http頭裡面能定義這樣一條命令 cache ...

抱不走的幸福

不要在年輕的時候愛上乙個人,因為你會為那付出慘痛的代價 在今年清明節的時候我就在想,五一的時候我會怎麼過。打死我都不會相信會是這麼過。乙個人做在電腦面前碼字。耳朵裡重複放著lionel richie的經典歌曲 say you,say me 這首歌真的是可以在你心情任何情況下都會找到共鳴。傷心的時候聽...