- 深入大型數據集:并行與分布化Python代碼
- (美)J.T.沃勒翰
- 808字
- 2021-03-04 19:24:14
1 入門介紹
本章要點
■ 介紹map和reduce編程風格
■ 理解并行編程的好處
■ 將并行編程擴展到一個分布式環境
■ 云中的并行編程
本書將向你傳授一套精通大型數據集處理的編程技術、工具和框架。在本書中,我將把你正在學習的編程風格稱為map和reduce風格。map和reduce編程風格是這樣一種編程方式:我們可以圍繞map和reduce這兩個函數來組織自己的代碼,從而輕松地編寫出在同一時間完成多項任務的并行程序。為了更好地理解為什么要使用map和reduce風格,請考慮以下這個場景。
場景 兩個年輕的程序員想出了一個對互聯網上的網頁進行排名的主意。他們希望根據鏈接某個頁面的其他網站的重要性,對這些頁面進行排名。他們認為互聯網應該像高中學校一樣:“酷”孩子們談論得越多的學校,就越重要。這兩個年輕的程序員喜歡這個想法,但是他們怎么可能分析整個互聯網呢?
熟悉硅谷歷史的讀者會看出,這個場景描寫的就是谷歌的起源故事。在其早期,谷歌普及了一種被稱為MapReduce的編程方法,作為一種對整個互聯網進行有效處理和排序的方法。這種風格天然適合谷歌,因為以下兩點:
1. 谷歌的兩位創始人都是數學怪才,而MapReduce來源于數學。
2. 與更傳統的編程風格相比,以map和reduce為中心的編程實現了一種更簡單的并行化。
map和reduce編程風格與MapReduce的區別
我將在本書中多次提到map和reduce編程風格。實際上,這種編程風格是我教你如何擴展程序的一個主要手段。盡管這種風格在名稱和功能上與MapReduce相似,但是它比MapReduce更加通用。MapReduce是一個用于并行和分布式計算的框架。map和reduce風格是一種編程風格,它允許程序員以最少的重寫代價并行地運行其工作,并將這種工作擴展到分布式工作流上。這可能會使用MapReduce,也可能使用其他的方法。
在本書中,我們將處理谷歌在其早期階段遇到的相同問題。我們將討論一種編程風格,它使我們能夠很容易地獲得一個好主意并將其進行擴展。我們將討論一種編程方法,可以讓從個人工作到團隊工作,或者從在筆記本電腦上工作到在分布式并行環境中工作變得容易。換句話說,我們將研究如何掌握處理大型數據集的方法。
- Advanced Machine Learning with Python
- JavaScript Unlocked
- Java面向對象程序開發及實戰
- C語言程序設計簡明教程:Qt實戰
- 深入理解C指針
- 軟件測試綜合技術
- Python自然語言理解:自然語言理解系統開發與應用實戰
- HTML5+CSS3+JavaScript 從入門到項目實踐(超值版)
- Flink技術內幕:架構設計與實現原理
- Python網絡爬蟲實例教程(視頻講解版)
- Wearable:Tech Projects with the Raspberry Pi Zero
- Java程序設計及應用開發
- C# 10核心技術指南
- Java Script從入門到精通(第5版)
- 數據庫技術及應用教程上機指導與習題(第2版)