Hadoop框架的核心設計是:HDFS和MapReduce。HDFS為海量數據提供存儲,MapReduce為海量數據提供計算。壹句話,Hadoop就是存儲加計算。
Hadoop這個名字不是壹個縮寫,而是壹個虛構的名字。該項目的創始人道格·卡丁(Doug Cutting)解釋了Hadoop的名字:“這個名字是我的孩子為壹個棕色的大象玩具命名的。
Hadoop是壹個分布式計算平臺,用戶可以輕松構建和使用。用戶可以在Hadoop上輕松開發和運行處理海量數據的應用。它主要有以下優點:
1,高可靠性Hadoop壹點壹點存儲和處理數據的能力值得人們信賴。
2.高度可擴展的Hadoop在可用的計算機集群之間分發數據並完成計算任務,可以輕松擴展到數千個節點。
3.高效的Hadoop可以在節點間動態移動數據,保證各個節點的動態平衡,所以處理速度非常快。
4.高容錯的Hadoop可以自動保存數據的多個副本,並自動重新分配失敗的任務。
5.成本低與QlikView、永紅Z-Suite等壹體機、商業數據倉庫、數據集市相比,hadoop是開源的,所以項目的軟件成本會大大降低。
Hadoop有壹個用Java語言寫的框架,所以運行在Linux生產平臺上是很理想的。Hadoop上的應用也可以用其他語言編寫,比如C++。
Hadoop大數據處理的意義
Hadoop因其在數據提取、變形和加載(ETL)方面的天然優勢,可以廣泛應用於大數據處理應用。Hadoop的分布式架構使得大數據處理引擎盡可能的靠近存儲,相對適合ETL等批量操作,因為這類操作的批量結果可以直接去存儲。Hadoop的MapReduce函數實現了打破單個任務,將碎片化的任務(Map)發送到多個節點,然後以單個數據集的形式加載到數據倉庫中。
Hadoop由以下項目組成
1,Hadoop common:Hadoop系統最底層的模塊,為Hadoop子項目提供各種工具,如配置文件、日誌操作等。
2.HDFS:分布式文件系統,提供高吞吐量的應用程序數據訪問。對於外部客戶端,HDFS就像壹個傳統的分層文件系統。您可以創建、刪除、移動或重命名文件,等等。但是,HDFS的架構是基於壹組特定的節點(見圖1),這是由它自身的特點決定的。這些節點包括NameNode(只有壹個),它在HDFS境內提供元數據服務;DataNode,它為HDFS提供存儲塊。因為只有壹個NameNode,這是HDFS的壹個缺點(單點故障)。存儲在HDFS的文件被分成塊,然後這些塊被復制到多臺計算機(DataNode)。這與傳統的RAID架構非常不同。塊的大小(通常為64MB)和復制的塊數由客戶端在創建文件時確定。NameNode可以控制所有文件操作。HDFS境內的所有通信都基於標準的TCP/IP協議。
3.MapReduce:壹個用於分布式海量數據處理的軟件框架集計算集群。
4.AVRO: RPC項目由道格·卡丁主持,主要負責數據序列化。有點像谷歌的protobuf和臉書的thrift。Avro作為以後hadoop的RPC,使得hadoop的RPC模塊通信速度更快,數據結構更緊湊。
5.Hive:類似CloudBase,也是壹套基於hadoop分布式計算平臺的軟件,提供數據倉庫的sql功能。它簡化了hadoop中存儲的海量數據的匯總和即席查詢。Hive提供了壹套QL查詢語言,基於sql,簡單易用。
6.HBase:基於Hadoop分布式文件系統,是基於列存儲模型的開源、可擴展的分布式數據庫,支持大型表中結構化數據的存儲。
7.Pig是用於並行計算的高級數據流語言和執行框架。類SQL語言是建立在MapReduce基礎上的高級查詢語言,將壹些操作編譯成MapReduce模型的Map和Reduce,用戶可以自定義函數。
8.ZooKeeper :Google的Chubby是壹個開源實現。它是大型分布式系統的可靠協調系統,功能包括配置維護、名稱服務、分布式同步、組服務等。ZooKeeper的目標是封裝復雜易錯的關鍵服務,為用戶提供簡單易用、性能高、功能穩定的界面和系統。
9.Chukwa:壹個用於管理大型分布式系統的數據采集系統,由yahoo貢獻。
10,Cassandra:無單點故障的可伸縮多主數據庫。
11,Mahout:壹個可擴展的機器學習和數據挖掘庫。
Hadoop設計之初,就以高可靠性、高可擴展性、高容錯性、高效率為目標。正是這些設計上的先天優勢,使得Hadoop壹出現就受到了很多大公司的青睞,也引起了研究領域的廣泛關註。到目前為止,Hadoop技術已經廣泛應用於互聯網領域,如雅虎、臉書、Adobe、IBM、百度、阿裏巴巴、騰訊、華為和中國移動。
關於如何學習hadoop,首先要了解並深刻理解hadoop是什麽,它的原理和功能是什麽,包括它的基本組件是什麽,它的功能是什麽。當然,在學習之前,至少要掌握壹門基礎語言,這樣才能事半功倍,因為hadoop目前在國內發展的時間並不長,有興趣的朋友可以找壹些書來學習,打好基礎。該網站還將持續更新關於hadoop的學習方法和信息資源。