04.20 Hadoop除了核心的HDFS和MapReduce以外,還包括哪些功能組件?

Hadoop除了核心的HDFS和MapReduce以外,還包括哪些功能組件?

經過多年的發展,Hadoop生態系統不斷完善和成熟,目前已經包括了多個子項目,除了核心的HDFS和MapReduce以外,Hadoop生態系統還包括要ZoopKer、HBase、Hive、Pig、Mahout、Sqoop、Flume、Ambari等功能組件。

Hadoop除了核心的HDFS和MapReduce以外,還包括哪些功能組件?

HDFS

Hadoop 分佈式文件系統是 Hadoop 項目的兩大核心之一,是針對谷歌文件系統(Google File System, GFS)的開源實現。HDFS具有處理超大數據、流式處理、可以運行在廉價商用服務器上等優點。HDFS在設計之初就是要運行在廉價的大型服務器集群上,因此在設計上就把硬件故障作為一種常態來考慮,可以保證在部分硬件發生故障的情況下仍然能夠保證文件系統的整體可用性和可靠性。

HDFS放寬了一部分POSIX約束,從而實現以流的形式訪問文件系統中的數據。HDFS在訪問應用程序數據時,可以具有很高的吞吐率,因此對於超大數據集的應用程序而言,選擇HDFS作為底層數據存儲是較好的選擇。

Hadoop除了核心的HDFS和MapReduce以外,還包括哪些功能組件?

HBase

HBase是一個提供高可靠性、高性能、可伸縮、實時讀寫、分佈式的列式數據庫,一般採用HDFS作為其底層數據存儲。HBase是針對谷歌BigTable的開源實現,二者都採用了相同的數據模型,具有強大的非結構化數據存儲能力。HBase與傳統關係數據庫的一個重要區別是,前者釆用基於列的存儲,而後者採用基於行的存儲。HBase具有良好的橫向擴展能力,可以通過不斷增加廉價的商用服務器來增加存儲能力。

MapReduce

Hadoop MapReduce是針對谷歌MapReduce的開源實現。MapReduce是一種編程模型,用於大規模數據集(大於1TB)的並行運算,它將複雜的、運行於大規模集群上的並行計算過程高度地抽象到了兩個函數一一Map和Reduce上,並且允許用戶在不瞭解分佈式系統底層細節的情況下開發並行應用程序,並將其運行於廉價計算機集群上,完成海量數據的處理。通俗地說MapReduce的核心思想就是“分而治之”。

Hive

Hive是—個基於Hadoop的數據倉庫工具,可以用於對Hadoop文件中的數據集進行數據整理、特殊查詢和分析存儲。Hive的學習門檻比較低,因為它提供了類似於關係數據庫SQL語言的查詢語言——Hive QL,可以通過Hive QL語句快速實現簡單的MapReduce統計,Hive自身可以將Hive QL 語句轉換為MapReduce任務進行運行,而不必開發專門的MapReduce應用,因而十分適合數據倉庫的統計分析。

Pig

Pig是一種數據流語言和運行環境,適合於使用HadooP和MapReduce平臺來查詢大型半結構化數據集。雖然MapReduce應用程序的編寫不是十分複雜,但畢竟也是需要一定的開發經驗的。Pig的出現大大簡化了 Hadoop常見的工作任務,它在MapReduce的基礎上創建了更簡單的過程語言抽象,為Hadoop應用程序提供了一種更加接近結構化査詢語言的接口。

Mahout

Mahout是Apache軟件基金會旗下的一個開源項目,提供一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序:Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,通過使用Apache Hadoop庫,Mahout可以有效地擴展到雲中

Zookeeper

Zookeeper是針對谷歌Chubby的一個開源實現,是高效和可靠的協同工作系統,提供分佈式鎖之類的基本服務,用於構建分佈式應用,減輕分佈式應用程序所承擔的協調任務。

Flume

Flume是Cloudera提供的一個高可用的、高可靠的、分佈式的海量日誌採集、聚合和傳輸的系統。Flume支持在日誌系統中定製各類數據發送方,用於數據收集;同時,Flume提供對數據進行簡單處理並寫到各種數據接受方的能力。

Sqoop

Sqoop是SQL-to-Hadoop的縮寫,主要用來在Hadoop和關係數據庫之間交換數據的互操作性。通過Sqoop可以方便地將數據從MySQL、Oracle. PostgreSQL等關係數據庫中 導人Hadoop (可以導人HDFS、HBase或Hive ),或者將數據從Hadoop導出到關係數據庫,使得傳統關係數據庫和Hadoop之間的數據遷移變得非常方便。Sqoop主要通過JDBC ( Java DataBase Connectivity湘關係數據庫進行交互,理論上,支持JDBC的關係數據庫都可以使Sqoop和Hadoop 進行數據交互。Sqoop是專門為大數據集設計的,支持增量更新,可以將新記錄添加到最近一次導出的數據源上,或者指定上次修改的時間戳。

Ambari

Apache Ambari是一種基於Web的工具,支持Apache Hadoop集群的安裝、部署、配置和管 理。Ambari 目前已支持大多數 Hadoop 組件,包括 HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、 Sqoop 等。

大數據的核心Hadoop,就先說到這,需要科譜的同學,別忘了多智時代喲


分享到:


相關文章: