轉載地址:http://www.iteye.com/blogs/subjects/zy19982004?page=2 一.Hadoop社區版和發行版 社區版:我們把Apache社區一直開發的Hadoop稱為社區版。簡單的說就是Apache Hadoophttp://hadoop.apache.org ...
轉載地址:http://www.iteye.com/blogs/subjects/zy19982004?page=2
一.Hadoop社區版和發行版
- 社區版:我們把Apache社區一直開發的Hadoop稱為社區版。簡單的說就是Apache Hadoophttp://hadoop.apache.org/
- 發行版:基於Apache Hadoop的基礎上進行商業改造的解決方案,包含一系列定製的管理工具和軟體。
二.Hadoop社區版版本號
一直以來,Hadoop的版本號一直困擾著廣大Hadoop愛好者,各版本層出不窮。如果你想使用Apache Hadoop,你必須知道自己要使用哪個版本的Hadoop,搞清楚Hadoop版本號就尤為重要了。
三.Hadoop發行版
- Cloudera
- 2009年開始Hadoop,Lutch,Lucene,Solr創始人Doug Cutting任職於Cloudera公司。
- Cloudera的主要產品是Cloudera Manager(CDH)。
- CDH3基於Apache Hadoop 0.20.2(簡單理解為Apche Hadoop 1);CDH4基於Apache Hadoop 0.20.3(簡單理解為Apche Hadoop 2),但是它採用新的MapReduce2.0,即Yarm。
- Hortonworks
- Hortonworks 2011年成立,由Yahoo於矽谷風投公司Benchmark Capital組成。公司成立的時候吸納了許多原來在Yahoo工作的Hadoop工程師,Apache Hadoop社區70%的代碼是雅虎工程師貢獻的。2006年開始Doug Cutting任職於Yahoo公司。
- Hortonworks的主要產品是Hortonworks Data Platform(HDP)。
- HDP主要基於Apache Hadoop 1。
- MapR
- 用自己的新架構重寫Hadoop,提供和Apache Hadoop相同的API。
- NameNode預設存儲三份,不存在NameNode單點故障Single Point Of Failure(SPOF)。
- IBM
- 華為
- 網路,PC,虛擬化方面的硬體實力。
- Intel
- Intel的發行版最先進入中國市場。
- 提供全面的硬體解決方案,針對硬體的性能優化。
四.你也可以閱讀以下文檔
- hadoop版本總結http://dijunzheng2008.blog.163.com/blog/static/98959897201210171340254/
- 關於Apache Hadoop 1.0 http://f.dataguru.cn/thread-23223-1-1.html
- 突破社區版Hadoop各商業發行版比較 http://cloud.chinabyte.com/news/206/12446706.shtml
- 如何選擇不同的Hadoop發行版 http://www.searchbi.com.cn/showcontent_70957.htm
一.Hadoop來歷
- 2004年12月。Google發表了MapReduce論文,MapReduce允許跨伺服器集群,運行超大規模並行計算。Doug Cutting意識到可以用MapReduce來解決Lucene的擴展問題。
- Google發表了GFS論文。
- Doug Cutting根據GFS和MapReduce的思想創建了開源Hadoop框架。
- 2006年1月,Doug Cutting加入Yahoo,領導Hadoop的開發。
- Doug Cutting任職於Cloudera公司。
- 2009年7月,Doug Cutting當選為Apache軟體基金會董事,2010年9月,當選為chairman。
- 各大企業開發自己的發行版,併為Apache Hadoop貢獻代碼。
二.Google-->Apache
- Chubby-->ZooKeeper
- GFS-->HDFS
- BigTable-->HBase
- MapReduce-->MapReduce
三.Google論文
- GFShttp://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/de//archive/gfs-sosp2003.pdf
- BigTable http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/zh-CN//archive/bigtable-osdi06.pdf
- MapReduce http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/zh-CN//archive/mapreduce-osdi04.pdf
四.你也可以閱讀一下文檔
- Wiki Doug Cutting http://en.wikipedia.org/wiki/Doug_Cutting
- Hadoop源代碼分析一 http://caibinbupt.iteye.com/blog/262412
一.NameNode物理文件夾
二.DataNode物理文件夾
一.NameNode概述
- NameNode存放了所有文件和文件夾的元數據信息
- 記憶體中:在系統啟動時,會把fsimage和editlog記錄的元數據信息加裝到記憶體中;在系統啟動時,NameNode收集DataNode心跳,在記憶體中形成file->blocks的對應關係。
- 硬碟上:操作日誌以fsimage和editlog的形式持久化在硬碟上。
- NameNode分類
- NameNode,Secondary NameNode。
- NameNode,Checkpoint Node,Backup NameNode。
二.fsimage editLog
- editLog:客戶端對文件系統每次讀寫等操作時,元數據節點首先修改記憶體中的數據結構,然後記錄到editlog中。
- fsimage:二進位文件;當editlog達到一定量(fs.checkpoint.size)或者距離上次歸併到fsimage達到一定時間(fs.checkpoint.period)時, editlog會被歸併到fsimage中。此過程被稱為checkpoint。另外一個checkpoint的時間是NameNode啟動時。
三.NameNode + Secondary NameNode
- Secondary NameNode通知NameNode準備chekpoint。
- NameNode產生edits.new,用來接受checkpoint過程中的editlog。
- Secondary NameNode通過http get方式獲取NameNode的fsimage與editlog。
- Secondary NameNode開始合併獲取的上述兩個文件,產生一個新的fsimage文件fsimage.ckpt。
- Secondary NameNode用http post方式發送fsimage.ckpt至NameNode。
- NameNode將fsimage.ckpt與edits.new文件分別重命名為fsimage與edits,然後更新fstime,整個checkpoint過程到此結束。
四.NameNode + Checkpiont NameNode + Backup NameNode
- 在Hadoop 0.21.0中,Secondary NameNode被Checkpoint NameNode和Backup NameNode取代。
- Checkpoint NameNode功能同Secondary NameNode,主要作用是合併元數據。
- Backup NameNode:NameNode實時主動把editlog和fsimage傳送給Backup NameNode,主要作用是備份。但其還不能作熱備,比喻Backup NameNode的記憶體中未保存Block的位置信息,仍需要等DataNode上報。
五.你也可以閱讀以下文章
一.數據塊
- HDFS預設數據塊大小64M。{現在的版本已經是128M,下麵不在修改了}
- 文件大於64M,將被分為若幹份64M+其它M存儲;文件小於64M,並不會占用整個64M大小,對於小文件,HDFS提供了幾種解決方案:Hadoop Archive,Sequence file和CombineFileInputFormat,後面看源碼時詳解。
二.DataNode
- 數據節點是真正存儲數據的地方。
- 周期性向NameNode彙報心跳,並帶回NameNode要下達的指令。NameNode並不主動向DataNode發送請求。
- DataNode可以作為伺服器,接受客戶端的讀寫請求。
- DataNode之間會互相通信,複製數據塊。