1. 程式人生 > >hive如何執行一條sql的例子

hive如何執行一條sql的例子

SQL如何在Mapreduce執行


左邊是資料表,右邊是結果表,這條 SQL 語句對 age 分組求和,得到右邊的結果表,到底一條簡單的 SQL 在 MapReduce 是如何被計算, MapReduce 程式設計模型只包含 map 和 reduce 兩個過程,map 是對資料的劃分,reduce 負責對 map 的結果進行彙總。

select id,age,count(1) from student_info group by age

首先看 map 函式的輸入的 key 和 value,輸入主要看 value,value 就是 user_info 表的每一行資料,輸入的 value 作為map函式輸出的 key,輸出的 value 固定為 1,比如<<1,17>,1>。 map 函式的輸出經過 shuffle 處理,shuffle 把相同的 key 以及對應的 value 組合成新<key,value集合>,從 user_info 表看出map輸出 2 次<<1,17>,1>,那麼經過 shuffle 處理後則會輸出<<1,17>,<1,1>>,並將輸出作為 reduce 函式的輸入。

在 reduce 函式會把所有 value 進行相加後輸出結果,<<1,17>,<1,1>>輸出為<<1,17>,2>。 這就是一條簡單 SQL 在 Mapreduce 執行過程,可能你會有點迷糊,在這裡我畫了一張流程圖,結合流程圖你會更加清楚。


https://www.cnblogs.com/TFengStorm/p/10198853.html