研一學生~突然搞起了Big Data。在學Hadoop中,突然意識到只會用工具是遠遠不夠的,很想搞懂立面的演算法和思想。請教達人們指點分散式存儲與運算的主要思想與演算法?


先弄清楚基本概念吧。

然後,你連標題和正分都區分不了,正確的提問方式都不去學習下,標題裡面還有錯別字,這麼漫不經心的錯誤,出現在知乎,證明你是多麼的浮躁和漫不經心。

做研究,深入的研究,從你改正錯別字開始吧。


看看 Google 那幾篇論文,Hadoop 就是依據這幾篇論文複製出來的東東,並且複製度還挺高,90%以上。

  • GFS - Google File System

  • Map Reduce
  • BigTable


Hadoop主要分三部分構成:HDFS、MapReduce、ZooKeeper。

1、 HDFS是一個分散式數據存儲系統,底層是採用固定大小的塊存儲,多節點複製保證可靠性,只能追加數據的模式,後台不時合併回收,Master-Slaves心跳做到數據節點可增減,塊壓縮減少IO和存儲,等等。適合海量數據存儲。

2、 MapReduce 是一個並行計算框架,實現映射-化簡的演算法,將大的任務分成大量細小的任務,框架進行協調和平衡,基於HDFS作為輸入數據、中間結果、輸出數據的存儲,任務就近數據的分配策略,等等。適合批量計算任務處理。

3、 ZooKeeper是一個集群管理服務,保證集群內個節點狀態一致性協調、狀態跟蹤、節點選舉,等等。基本Hadoop集群不需要ZooKeeper,通過IPC和心跳機制來做集群管理。HBase需要ZooKeeper管理Master-RegionServers。

以上希望能對你有幫助。


個人覺得,你去幾篇介紹分散式系統的survey來看看吧,看下這些系統的設計決策就大概知道哪裡需要trade off,什麼樣的場景需要什麼樣的演算法了。


路過隨便扯扯。

Hadoop大數據運算用的是mapreduce思想,分而治之。

數據存儲,建立多級索引,通過冗餘增加可靠性。


我來推薦本書吧

大規模分散式存儲系統 (豆瓣)

講的很全

希望題主關注一下一致性問題,這個可以說是分散式存儲系統的核心。

忘了是誰說的,「分散式存儲的本質就是一致性」

2pc,3pc,paxos,raft了,等等都是需要了解的


搞不懂這個問題下的答案排名


連paxos演算法都沒提,哎


推薦閱讀:

Hadoop和Hadoop2有很大的區別么?
如何入門分散式計算?
雙十一時,阿里的技術人員在後台做了些什麼?
當spark讀取一個非常大的本地文件時,讀入內存後分區會自動分布到多個節點上嗎?

TAG:雲計算 | 分散式計算 | Bigtable | 分散式存儲 | Hadoop | 大數據 |