一、什麽是Hadoop?
一、什麽是Hadoop?
Hadoop是Apache下的一個開源分布式計算平臺。以Hadoop分布式文件系統(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)為核心的Hadoop為用戶提供了系統底層細節透明的分布式基礎結構。
Hadoop包含HDFS,MapReduce,Pig,ZooKeeper等子項目的集合,用於分布式計算
二、為什麽要用Hadoop?
由於現在信息量速度增長快。信息裏又積累著大量的數據,包括個人數據和工業數據。每年產生的數字信息將會有1/3的內容留在雲平臺中,或者由雲平臺處理。我們需要對這些數據進行分析和處理,獲取更多有價值的信息。如何搞笑的存儲和管理這些數據,如何分析這些數據,就可以選用Hadoop系統,處理大數據時,采用了分布式存儲方式,提供了讀寫速度,擴大了存儲容量。采用MapReduce來整合分布式文件系統上的數據,保證分析和處理數據的高效,而且Hadoop采用存儲冗余數據的方式保證了數據的安全性。
三、HDFS
HDFS有高容錯特性,以及它基於Java語言開發,可部署在低廉的計算機集群中,而且不限某個操作系統,它基於Java語言開發。HDFS的數據管理能力,MapReduce處理任務的高效率。
四、Hadoop項目及結構
核心內容是MapReduce和HDFS,但是Common,Avro,Chukwa,Hive,HBase等項目。
Pig | Chukwa | Hive | HBase |
MapReduce | HDFS | ZooKeeper | |
Core | Avro |
1、Core/Common:為Hadoop其他子項目提供支持的常用工具,主要包括FileSystem,RPC(Remote Procedure Call遠程過程調用協議)和串行化庫。
2、Avro:是用於數據序列化的系統。提供了豐富的數據結構類型,快速可壓縮的二進制數據格式,可存儲持久性數據的文件集。它依賴於模式Schema,Avro數據讀和寫是在模式下完成,這樣可以減少寫入數據的開銷,提高序列化的速度
3、MapReduce:是一種編程模型,用於大規模數據集的並行運算。Map映射,Reduce歸約。MapReduce執行時先指定一個Map映射函數,把輸入鍵值對映射成一個新的鍵值對。經過一定的處理後交給Reduce,Reduce對相同Key下的所有Value進行處理後再輸出鍵值對作為最終的結果。
核心是HDFS和MapReduce,Hadoop的體系結構主要通過HDFS來實現對分布式存儲的底層支持,通過MapReduce來實現對分布式並行任務處理額的程序支持。
4、HBase是一個分布式數據庫
5、Hive是建立在Hadoop上的數據倉庫基礎架構。
一、什麽是Hadoop?