找回密碼
 註冊
查看: 1743|回覆: 18

Google 為什麼能在 0.15 秒找到數十萬筆資料?

[複製鏈接]
發表於 2013-5-9 23:39:04 | 顯示全部樓層 |閱讀模式

登入後,內容更豐富

您需要 登錄 才可以下載或查看,沒有賬號?註冊

×
本帖最後由 littlepants9394 於 2013-5-9 23:39 編輯

當你在瀏覽器上輸入想要搜尋的字串時,Google 會檢視數十億個網頁,並依據索引值從中找出內容相符合的網頁,再依據相關的規則列出先後次序,而搜尋引擎會將結果以最快的時間回傳。

但是,網路上的資料量不但龐大,而且內容隨時都在變化,甚至同一個網頁的內容都會一天數變,因此,Google 就必須時時進行更新的動作,這個動作叫「爬行」(Crawling),而執行爬行動作的程式一般俗稱「爬蟲」(Crawler)或「網路蜘蛛」(Spider),除了搜尋引擎之外,常見的應用還有比價系統,像是 FindPrice、背包客棧國際訂房中心比價等都是。

而 Google 之所以能成為其中的霸主,當然是有其過人之處。本篇文章就跟各位讀者簡單地分享一下 Google 所開發的三個核心技術:GFS、BigTable 與 MapReduce 演算法。

1. Google File System,用來用以儲存 Big Data

Google File System(GFS 或 GoogleFS)是由數百個叢集(Cluster)所組成。每一個叢集有多達數千台的伺服器,是一種分散式容錯檔案系統,主要的任務是儲存網頁、影片、照片、Email 和 Google Map等資料,而這些檔案極少被刪除或異動,大多數時候都是新增或讀取,因此,對其進行最佳化的管理就非常重要了。

儲存在 GFS 的檔案會被切割成 64 MB 左右的資料塊(Chunk),分別放在三台稱為 Chunkserver 的伺服器內,當 Chunkserver 發生問題時,主伺服器(Master Server)就會將資料複製到另一個 Chunkserver 上。

2.  BigTable ,利用成對的 Key-Value,快速讀取資料

BigTable 就字面上的意思看來,就是「大型的資料表」,它主要負責管理 GFS 的機制,屬於分散式資料儲存系統,可以管理分佈在數千台伺服器上的 Big Data,就像是一張資料表(Table),資料表上註明了每一台伺服器所有的資料,包括 Google Analytics、Google Earth、Gmail、Google Reader、Google Map、Google Finance 以及 YouTube 等。

由於上述這些產品的應用對於 BigTable 的需求與所組成的結構各不相同,因此 BigTable 採用了鍵與值 Key-Value 的資料架構,其具有水平擴充的能力,只要空間不足就可以立即新增資料庫,而它的儲存容量屬於 PB 等級(1 Petabyte(PB)= 1024 TB)。

當然對 Google 而言,系統的回應時間仍是首要考量,因此,BigTable 設計時的主要目標就著重於「可靠地處理大量的數據」,因而採用了叢集平行處理技術。

3. MapReduce ,用來處理與分析 Big Data

MapReduce 用來進行 Big Data 的計算,其包含了 Map 和 Reduce 兩個部份,主要用於大規模資料集的平行運算。

簡單來說,MapReduce 在處理資料時,Map 函數會把原始資料映射成新的一組鍵與值(Key-Value)的序對,並切割成有規律性的小資料,並經過 Shuffle 做排序,最後再透過 Reducer 函數依相同的 Key 整合結果,最後才能將整體的結果輸出。

例如,上網查 MapReduce 這個字串,會透過 Map 函數計算網頁上出現「MapReduce」的次數,如果出現 10 次就用(MapReduce, 10)來表示;再用 Reduce 函數彙整所有具有相同 Key 值的資料,並統計它們出現的次數。

http://techorange.com/2013/05/07 ... -engines-technique/


I think most of chings are well aware of Google's basic technology but just post for anyone wants a refresh.

發表於 2013-5-10 02:12:42 | 顯示全部樓層
睇完唔係好明
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-10 11:29:14 用手機發表 | 顯示全部樓層
回左先慢慢睇
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-10 12:45:48 | 顯示全部樓層
自己都係用google多過yahoo

唔知點解, 用同樣的keyword來search, 用yahoo成日都會search左d舊資訊出來, 而google就好少出現這種情況
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-10 20:08:55 | 顯示全部樓層

現在不清楚,不過幾年前玩SEO時,yahoo robots每日先來2-3次,google每小時來3-4次
回覆 讚好 不讚 使用道具

舉報

 樓主| 發表於 2013-5-11 00:21:51 | 顯示全部樓層
多謝各位Ching 嘅回帖,用layman term 來講,google 利用一個網站被連結的次數決定它的重要性,再把網站, key word 和它的分數放進自己嘅table.
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-12 15:43:35 | 顯示全部樓層
有興趣上網搵下Search Engine Optimization Books
回覆 讚好 不讚 使用道具

舉報

 樓主| 發表於 2013-5-13 21:47:12 | 顯示全部樓層
回應 edward_128 #7 的帖子

ching 有料到!
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-14 00:09:18 | 顯示全部樓層
jayzhou_2046  <=== 更利害
回覆 讚好 不讚 使用道具

舉報

 樓主| 發表於 2013-5-14 00:12:42 | 顯示全部樓層
回應 edward_128 #9 的帖子

總之個個都利害!

回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-14 00:24:25 | 顯示全部樓層
littlepants9394 發表於 2013-5-14 00:12
回應 edward_128 #9 的帖子

總之個個都利害!


碧咸都好掂架 !
不過佢老哥鍾意講影相多過講IT .
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-14 08:10:42 | 顯示全部樓層
影相-我30多年前就玩
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-15 12:54:29 | 顯示全部樓層
Google 真係好勁
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-16 23:41:22 | 顯示全部樓層
edward_128 發表於 2013-5-14 08:10
影相-我30多年前就玩

其實E+都可以玩番, 
我都系二三十年前玩過, 
近呢兩年先至再玩
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-17 07:30:50 | 顯示全部樓層
我從Film 135黑白到彩色
Nikon F2 年代
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-17 08:41:50 | 顯示全部樓層
edward_128 發表於 2013-5-17 07:30
我從Film 135黑白到彩色
Nikon F2 年代

有時間可以過呢度望下

http://141hongkong.com/thread-1170979-1-1.html

嗰度都好friendly, 我地耐不耐仲會約埋出來影相研究。
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-19 13:15:21 | 顯示全部樓層
本帖最後由 drunkbeggar 於 2013-5-19 13:15 編輯

宝贵的一课,这google search本来就是一个传奇。我最近也学习apache hadoop, 它是mapreduce 的alternative.
回覆 讚好 不讚 使用道具

舉報

 樓主| 發表於 2013-5-20 00:45:41 | 顯示全部樓層
回應 drunkbeggar #17 的帖子

我都覺得 Hadoop 係末來其中一個 trend, 做 Big Data 幾乎一定要講佢。Ching 可以考慮發一張帖,share 下 Hadoop 101 啦!
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-21 12:17:42 | 顯示全部樓層
回應 littlepants9394 #6 的帖子

睇完layman term 之後終於明左好多
回覆 讚好 不讚 使用道具

舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|聯絡我們|141華人社區

GMT+8, 2024-4-29 02:14

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回覆 返回頂部 返回列表