《Hadoop權威指南》-- mapreduce原理讀後感
讀完《Hadoop權威指南》裡面有關氣象資料集的計算一章後,對於自己以前參與的一個專案有了一些新的想法。
場景:停車場系統,希望統計一年中每月進出車輛的統計分佈,原先沒有使用hadoop這種分散式架構,就是比較基礎的統計。下面以統計每月進入車輛統計為例,進行說明mapreduce。
原始記錄中包含車輛進出場的時間,格式“yyyymmddhhmmss”,進/出都有自己的時間,透過不同擷取即可得到。
將資料檔案存入HDFS,有系統分片分配給個節點。
定義進入map:
1、讀取每條記錄
2、按照格式擷取
3、檢查map中是否存在這個的key,如果沒有,生成一個,並且value賦值1;如果有,則value+1
4、迴圈執行1-3,處理分配的資料片。
這個map得到如下形式:
節點一 節點二
【200905,20】 【200902,200】
【200908,200】 【200905,100】
【200909,150】 【200909,210】
處理完成,交由reduce進行合併:
將map函式的處理結果,作為輸入。
邏輯如下:
將key相同的並且到一個key中,value值相加。最後結果如:
【200902,200】
【200905,120】
【200908,200】
【200909,360】
得到統計結果。出場以此類推。
mapreduce原理,我認為是利用分散式,進行分而治之的策略,將資料分割成64M(預設),然後又不同的節點去分析,這是每個節點獨立執行(節點資源可以認為是獨佔,而單機多程式併發,還有爭奪資源),這樣化整為零,計算效率提高;最後將分析結果合併,這個結果要比最初的資料要小的非常多,不是一個數量級的。
整體計算能力、資源使用率等等都要比單機要高。
場景:停車場系統,希望統計一年中每月進出車輛的統計分佈,原先沒有使用hadoop這種分散式架構,就是比較基礎的統計。下面以統計每月進入車輛統計為例,進行說明mapreduce。
原始記錄中包含車輛進出場的時間,格式“yyyymmddhhmmss”,進/出都有自己的時間,透過不同擷取即可得到。
將資料檔案存入HDFS,有系統分片分配給個節點。
定義進入map:
1、讀取每條記錄
2、按照格式擷取
3、檢查map中是否存在這個的key,如果沒有,生成一個,並且value賦值1;如果有,則value+1
4、迴圈執行1-3,處理分配的資料片。
這個map得到如下形式:
節點一 節點二
【200905,20】 【200902,200】
【200908,200】 【200905,100】
【200909,150】 【200909,210】
處理完成,交由reduce進行合併:
將map函式的處理結果,作為輸入。
邏輯如下:
將key相同的並且到一個key中,value值相加。最後結果如:
【200902,200】
【200905,120】
【200908,200】
【200909,360】
得到統計結果。出場以此類推。
mapreduce原理,我認為是利用分散式,進行分而治之的策略,將資料分割成64M(預設),然後又不同的節點去分析,這是每個節點獨立執行(節點資源可以認為是獨佔,而單機多程式併發,還有爭奪資源),這樣化整為零,計算效率提高;最後將分析結果合併,這個結果要比最初的資料要小的非常多,不是一個數量級的。
整體計算能力、資源使用率等等都要比單機要高。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26812308/viewspace-747770/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讀《Cassandra權威指南》
- 《Web應用安全權威指南》讀後有感Web
- 《Git權威指南》讀書筆記Git筆記
- Hadoop權威指南 第4章 關於YARNHadoopYarn
- Swift程式設計權威指南第2版 讀後收穫Swift程式設計
- [hadoop]mapreduce原理簡述Hadoop
- javascript權威指南閱讀筆記2JavaScript筆記
- nodejs開發指南讀後感NodeJS
- Git權威指南Git
- HTTP權威指南HTTP
- 《IDA Pro權威指南》讀書筆記筆記
- 《IDA pro權威指南》閱讀筆記筆記
- hadoop權威指南上 天氣例子測試執行Hadoop
- Hadoop 權威指南,成為神書必有神旨 - 72Hadoop
- Oracle效能優化求生指南讀後感Oracle優化
- JavaScript 日期權威指南JavaScript
- Netty權威指南Netty
- 《ZeroC Ice權威指南》
- hadoop權威指南中的ncdc資料下載地址及命令 .Hadoop
- JavaScript權威指南(6)——物件JavaScript物件
- [譯] JAVASCRIPT 日期權威指南JavaScript
- JavaScript權威指南-陣列JavaScript陣列
- 讀後感
- 讀書筆記【JS 權威指南】14.1 計時器筆記JS
- Java 13權威指南 - CodeFXJava
- JavaScript權威指南(8)——函式JavaScript函式
- JavaScript權威指南(7)——陣列JavaScript陣列
- Elasticsearch 權威指南(中文版)Elasticsearch
- javascript權威指南——函式篇JavaScript函式
- HBase權威指南【中文版】
- 微服務入門權威指南微服務
- 《http權威指南》學習感想HTTP
- ORACLE11G權威指南Oracle
- RPM包的權威指南。
- 讀後感1
- 讀後感2
- 讀後感3
- 讀Cookie安全後的讀後感Cookie