4.3 第三次映射,把乘客映射到《航班,座號》
柜臺處理包括驗看證件,發(fā)放登機牌,把乘客分到了航班上,并給托運行李掛上航班標簽。
設(shè)在多個值機臺的并行工作下,證件號為 1,3,5的乘客,分到了航班 CA1209,而證件號為 2,4,6的乘客,分到了航班 3U8882,于是,得到了下列《乘客,航班號,座號》三元組:
《1,CA1209,1排A》, 《3,CA1209,2排B》, 《3,CA1209,3排C》,
《2,3U8882,5排A》, 《4,3U8882,7排B》, 《6,3U8882,2排C》,
至此,并行地完成了這6位乘客的第三次映射 。
4.4 歸約成為倒排表
把上述映射的結(jié)果按航班合并、約簡,成為便于使用的如下形式,即倒排表:
這一步驟,把同一航班的乘客歸到一起,例如,1,3,5出現(xiàn)在倒排表中CA1208這一行右邊,對乘客而言,是歸類,對信息而言,是約簡, 把這一動作稱為歸約(reduce),是再合適不過了。
登機牌在該航班起飛前半小時將停辦,對應(yīng)倒排表停止變化,把乘客按某指標(通常關(guān)注重要程度)排序,被分發(fā)到該航班和機場、保險公司等相關(guān)部門。
此外,用多個 單關(guān)鍵字的倒排索引作交集,可以得到多關(guān)鍵字的倒排索引。
4.5 倒排表幫助改善服務(wù) 上述倒排索引能幫助機組人員知道登機人數(shù)與座位,改善服務(wù),例如能叫出頭等艙客戶和金卡客戶的姓名、且服務(wù)到座位,就顯得格外溫馨和諧。
如有突發(fā)事件發(fā)生,作為“處突”依據(jù),例如,馬航官方能在突發(fā)事件后很快查出MH370的乘客信息。
綜上所述,辦理登機牌的全過程可以表達為下列經(jīng)典的Map-Reduce圖,這個圖大致反映了并行地映射-歸約的流向,但未表達4.3節(jié)描述的歸約細節(jié),用于科普,勉強夠了。
現(xiàn)在的互聯(lián)網(wǎng)搜索引擎,倒排表中機理大致如上,但數(shù)量增大若干個數(shù)量級,相當于在上圖中的乘客組有幾千萬, 值機臺(CPU)有100萬, 而航班(倒排索引項)是幾萬-幾十萬。
需要說明,這只是為了說明‘映射-歸約”機制而編的例子,真實的機場工作機制要復(fù)雜得多。
5 安檢時的映射-歸約,
在首都機場,可以看到,在安檢時,還有一次Map-Reduce過程, 源源不斷的乘客乘坐扶梯下到安檢大廳,
Map: 一位安檢人員指引乘客,分流到個安檢口;
Reduce:安檢后,分成若干類:大部分歸約為PASS 類,部分乘客有不合適行李,要做處理,自棄,留存,安檢人員會對應(yīng)機票,身份證作相應(yīng)記錄,….
6 流水作業(yè)方式閱卷中的映射歸約
真實的高考涉及若干政策問題,比較復(fù)雜;只有一個評閱人的閱卷有沒有并行,不適合做映射-歸約的用例。下面考慮一個學院中某一課程的期末考試試卷處理,為公平和高效,閱卷普遍采用流水作業(yè)方式,一位閱卷人評閱一組題,然后總計分數(shù);要求給出如下的分數(shù)段倒排表:
映射階段:把答卷片組分給承擔任務(wù)的閱卷人,(就像把乘客組分到值機臺)
歸約預(yù)處理階段:閱卷人閱承擔的片段,匯總片段所得總分;(就像值機臺把乘客分到航班,并發(fā)登機牌)
歸約后處理階段:與登機牌處理的不同點,在歸約算法中適當?shù)胤?,增加一道匯總試卷總分,并且歸約到分數(shù)段。寫入倒排表。
這個例子僅僅是為了說明,在人們熟悉的流水閱卷過程中,包含了Map-Reduce的深刻機理; 在這個意義上可以說,大數(shù)據(jù)技術(shù)也是源于生活,服務(wù)于生活的。
7 小樣啟發(fā)思考,映射-歸約技術(shù)要點
上面的例子在思路上還真是Map-Reduce(不僅僅是比喻),雖然還只是“小樣”,但事不同而理同。能啟發(fā)我們的思考。
大數(shù)據(jù)中的映射-歸約有下列要點:
1. 目標:完成某一類計算,典型實例之一是生成某個關(guān)鍵字上的倒排索引;