最近的一段時間常常聽同事提到這個HADOOP 應該是個大的趨勢,如今須要瞭解,之後須要熟悉,在後來就要精通了。 sql
先簡單的認識一下吧:)數據庫
Hadoop 由 Apache Software Foundation 公司於 2005 年秋天做爲 Lucene 的子項目 Nutch 的一部分正式引入。它受到最早由 Google Lab 開發的 MapReduce 和 Google File System 的啓發。2006 年 3 月份,MapReduce 和 Nutch Distributed File System (NDFS) 分別被歸入稱爲 Hadoop 的項目中。
Hadoop 是最受歡迎的在 Internet 上對搜索關鍵字進行內容分類的工具,但它也能夠解決許多要求極大伸縮性的問題。例如,若是您要 grep 一個 10TB 的巨型文件,會出現什麼狀況?在傳統的系統上,這將須要很長的時間。可是 Hadoop 在設計時就考慮到這些問題,所以能大大提升效率。編程
Hadoop 是一個可以對大量數據進行分佈式處理的軟件框架。可是 Hadoop 是以一種可靠、高效、可伸縮的方式進行處理的。Hadoop 是可靠的,由於它假設計算元素和存儲會失敗,所以它維護多個工做數據副本,確保可以針對失敗的節點從新分佈處理。Hadoop 是高效的,由於它以並行的方式工做,經過並行處理加快處理速度。Hadoop 仍是可伸縮的,可以處理 PB 級數據。此外,Hadoop 依賴於社區服務器,所以它的成本比較低,任何人均可以使用。
Hadoop帶有用 Java 語言編寫的框架,所以運行在 Linux 生產平臺上是很是理想的。Hadoop 上的應用程序也可使用其餘語言編寫,好比 C++。服務器
Hadoop 有許多元素構成。最底部是 Hadoop Distributed File System(HDFS),它存儲 Hadoop 集羣中全部存儲節點上的文件。HDFS(對於本文)的上一層是 MapReduce 引擎,該引擎由 JobTrackers 和 TaskTrackers 組成。數據結構
整個 Hadoop 家族由如下幾個子項目組成:框架
Hadoop Common Hadoop體系最底層的一個模塊,Hadoop各子項目提供種工具,如: 各子項目提供種工具,如: 配置文件和日誌操做等。 配置文件和日誌操做等。 配置文件和日誌操做等。 配置文件和日誌操做等。 分佈式
Avro是 doug cutting主持的 RPC ,有點相似 Google 的 protobuf protobuf和 Facebook的 thrift。 avro用來作之後 用來作hadoop的 RPC,使hadoop的 RPC模塊通訊速度更快、數據結構緊湊。ide
Chukwa 是基於 Hadoop 的大集羣監控系統由 yahoo貢獻。工具
HBase 基於 Hadoop Distributed File System ,是一個開源的基於列存儲模型分佈式數據庫。 ,是一個開源的基於列存儲模型分佈式數據庫。oop
HDFS 分佈式文件系統
hive相似CloudBase,也是基於 hadoop 分佈式計算平臺上的提供 data warehouse的 sqlsql 功能的一套軟件。使得存儲在 hadoop 裏面的海量數據彙總,即席查詢簡單化。hive提供 了一套 QL 的查詢語言,以 sqlsql 爲基礎,使用起來很方便。
MapR educe 實現了 MapReduce 編程框架
Pig 是 SQLlike語言,是在MapReduce上構建的一種高級查詢語言,把些運算編譯進 MapReduce模型的 Map和 Reduce中,而且用戶能夠定義本身的功能。 Yahoo網格運算部門開發的又一個克隆 Google 的項目 的項目 Sawzall。
Zookeeper 是Google 的 Chubby 一個開源的實現。它是針對大型分佈式系統 的可靠協調系統,提供功能包括:配置維護、名字服務分佈式同步組等。
ZooKeeper的目標就是 的目標就是 封裝好複雜易出錯的關鍵服務,將簡單用接口和性能高效、功穩定系統 提供給用戶。