1. 程式人生 > >整體瞭解HADOOP框架及一些開源專案

整體瞭解HADOOP框架及一些開源專案

Hadoop框架中,有很多優秀的工具,幫助我們解決工作中的問題。

Hadoop的位置

20150215103059348

從上圖可以看出,越往右,實時性越高,越往上,涉及到演算法等越多。

越往上,越往右就越火……

Hadoop框架中一些簡介

QQ截圖20150319155514

HDFS

HDFS,(Hadoop Distributed File System) hadoop分散式檔案系統。在Google開源有關DFS的論文後,由一位大牛開發而成。HDFS的建立在叢集之上,適合PB級大量資料的儲存,擴充套件性強,容錯性高。它也是Hadoop叢集的基礎,大部分內容都存在了HDFS上。

MapReduce

MapReduce,是Hadoop中的計算框架,由兩部分構成。Map操作以及Reduce操作。MapReduce,會生成計算的任務,分配到各個節點上,執行計算。這樣就避免了移動叢集上面的資料。而且其內部,也有容錯的功能。在計算過程中,某個節點宕掉之後,會有策略進行應對。Hadoop叢集,上層的一些工具,比如Hive或者Pig等,都會轉換為基本的MapReduce任務來執行。

HBase

HBase源自谷歌的BigTable。HBase是面向列儲存的資料庫,效能高,擴充套件性強,可靠性高。HBase的內容,儲存在HDFS上,當然它也可以使用其他的檔案系統,如S3等。HBase作為一個頂級專案,使用頻率很高。如:我們可以用來儲存,爬蟲爬來的網頁的資訊等。具體的HBase的概念請見後續詳細說明。延遲較低。

Hive

Hive,是一個查詢的工具,在HBase中,對於SQL的支援不太好。而Hive解決了這一類的問題。以sql形式操作hbase,更爽一些。Hive編寫的一些sql語句,其實最後也還是會變成MapReduce程式。當然這種查詢,不能與關係型資料庫mysql等比較,hive查詢時,是秒級或分鐘級的,時間比較長。

Sqoop

Sqoop,也是一個很神奇的資料同步工具。在關係型資料庫中,我們會遇到一種情景,將Oracle資料匯入到Mysql,或者將Mysql資料,匯入到Oracle。那其實Sqoop也是類似的功能。sqoop可以將Oracle,Mysql等關係型資料庫中的資料,匯入到HBase,HDFS上,當然也可以從HDFS或HBase匯入到Mysql或Oracle上。

Flume

Flume,是日誌收集工具,是分散式的,可靠的,容錯的,可以定製的。應用場景如:100臺伺服器,需要監測各個伺服器的執行情況,這時可以用flume將各個伺服器的日誌,收集過來。Flume也有兩個版本。Flume OG 和Flume NG。現在基本都用NG了。

Impala

Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,能查詢儲存在Hadoop的HDFS和HBase中的PB級大資料。已有的Hive系統雖然也提供了SQL語義,但由於Hive底層執行使用的是MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的互動性。相比之下,Impala的最大特點也是最大賣點就是它的快速。Imapa可以和Phoenix,Spark Sql聯絡起來了解一下。

Spark

Spark是一個記憶體計算的框架。目前一個大的趨勢。MapReduce會有很大的IO操作,而Spark是在記憶體中計算。速度是Hadoop的10倍(官網上這樣說的)。Spark是目前一個趨勢,是需要了解的。

Zookeeper

Zookeeper,動物管理員。Zookeeper叫分散式協作服務。作用主要是,統一命名,狀態同步,叢集管理,配置同步。Zookeeper在HBase,以及Hadoop2.x中,都有用到。

Mahout

資料探勘演算法庫,裡面內建了大量的演算法。可以用來做預測、分類、聚類等。工具很強大,但是技術要求能力較高。

Pig

和Hive類似。具體區別自己搜搜。Pig可以構建資料倉庫。可用來對資料倉庫中資料,進行查詢分析。Pig也有自己的查詢語法,很不幸,不是sql形式,Pig Latin。

Ambari

Ambari是一個管理平臺。可以對叢集進行統一的部署。也是很方便的。

轉載,原博主地址:http://www.weixuehao.com/archives/559