Hadoop
什麼是 Hadoop,它的用途是什麼?
一段時間以來,我一直很喜歡閱讀 ServerFault,並且遇到了很多關於 Hadoop 的主題。從全球的角度來看,我很難找到它的作用。
所以我的問題很簡單:什麼是 Hadoop?它有什麼作用 ?它是乾什麼用的 ?為什麼會踢屁股?
**編輯:**如果有人碰巧有使用 Hadoop 的案例的展示/解釋,那就太好了。
直接從馬嘴裡說:
Hadoop 是一個框架,用於在由商品硬體建構的大型集群上執行應用程序。Hadoop 框架透明地為應用程序提供可靠性和數據移動。Hadoop 實現了一種名為 Map/Reduce 的計算範式,其中應用程序被劃分為許多小的工作片段,每個工作片段都可以在集群中的任何節點上執行或重新執行。此外,它還提供了一個分佈式文件系統 (HDFS),可將數據儲存在計算節點上,從而在整個集群中提供非常高的聚合頻寬。Map/Reduce 和分佈式文件系統都經過設計,以便框架自動處理節點故障。
Map/Reduce 是Google流行的一種程式範式,其中一個任務被分成小部分並分發到大量節點進行處理(map),然後將結果匯總為最終答案(reduce )。Google和雅虎將其用於他們的搜尋引擎技術等。
Hadoop 是實現這種處理方案的通用框架。至於它為何如此出色,主要是因為它提供了諸如容錯之類的簡潔功能,並且可以讓您將幾乎任何類型的硬體組合在一起來進行處理。只要您的問題符合範式,它的擴展性也非常好。
您可以在網站上閱讀所有相關資訊。
至於一些例子,Paul 給出了一些例子,但這裡還有一些你可以做的不是那麼以網路為中心的例子:
- 渲染 3D 電影。“map”步驟將每一幀的幾何分佈到不同的節點,節點渲染它,渲染的幀在“reduce”步驟中重新組合。
- 在分子模型中計算系統中的能量。系統軌蹟的每一幀都在“映射”步驟中分配給一個節點。節點計算每一幀的能量,
然後在“減少”步驟中總結結果。
從本質上講,該模型對於可以分解為完全獨立的類似離散計算的問題非常有效,並且可以重新組合以產生最終結果。