官术网_书友最值得收藏!

1 入介紹

本章要點

■ 介紹map和reduce編程風格

■ 理解并行編程的好處

■ 將并行編程擴展到一個分布式環境

■ 云中的并行編程

本書將向你傳授一套精通大型數據集處理的編程技術、工具和框架。在本書中,我將把你正在學習的編程風格稱為mapreduce風格。map和reduce編程風格是這樣一種編程方式:我們可以圍繞map和reduce這兩個函數來組織自己的代碼,從而輕松地編寫出在同一時間完成多項任務的并行程序。為了更好地理解為什么要使用map和reduce風格,請考慮以下這個場景。

場景 兩個年輕的程序員想出了一個對互聯網上的網頁進行排名的主意。他們希望根據鏈接某個頁面的其他網站的重要性,對這些頁面進行排名。他們認為互聯網應該像高中學校一樣:“酷”孩子們談論得越多的學校,就越重要。這兩個年輕的程序員喜歡這個想法,但是他們怎么可能分析整個互聯網呢?

熟悉硅谷歷史的讀者會看出,這個場景描寫的就是谷歌的起源故事。在其早期,谷歌普及了一種被稱為MapReduce的編程方法,作為一種對整個互聯網進行有效處理和排序的方法。這種風格天然適合谷歌,因為以下兩點:

1. 谷歌的兩位創始人都是數學怪才,而MapReduce來源于數學。

2. 與更傳統的編程風格相比,以map和reduce為中心的編程實現了一種更簡單的并行化。

map和reduce編程風格與MapReduce的區別

我將在本書中多次提到map和reduce編程風格。實際上,這種編程風格是我教你如何擴展程序的一個主要手段。盡管這種風格在名稱和功能上與MapReduce相似,但是它比MapReduce更加通用。MapReduce是一個用于并行和分布式計算的框架。map和reduce風格是一種編程風格,它允許程序員以最少的重寫代價并行地運行其工作,并將這種工作擴展到分布式工作流上。這可能會使用MapReduce,也可能使用其他的方法。

在本書中,我們將處理谷歌在其早期階段遇到的相同問題。我們將討論一種編程風格,它使我們能夠很容易地獲得一個好主意并將其進行擴展。我們將討論一種編程方法,可以讓從個人工作到團隊工作,或者從在筆記本電腦上工作到在分布式并行環境中工作變得容易。換句話說,我們將研究如何掌握處理大型數據集的方法。

主站蜘蛛池模板: 两当县| 鲜城| 万全县| 玉屏| 郁南县| 达尔| 瑞安市| 莱阳市| 丘北县| 岚皋县| 柞水县| 石台县| 民权县| 息烽县| 南开区| 万荣县| 夏津县| 西林县| 巴中市| 忻城县| 云霄县| 昌平区| 九江县| 象山县| 友谊县| 大城县| 鄂托克前旗| 石台县| 阿合奇县| 崇礼县| 博客| 旬阳县| 衢州市| 沿河| 建阳市| 红安县| 北海市| 永修县| 兴义市| 监利县| 天祝|