1. 程式人生 > >大數據系列之Hadoop框架

大數據系列之Hadoop框架

apr png 關系型 big sqoop ted 服務器 定制 操作

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

Hadoop的位置

技術分享

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

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

Hadoop框架中一些簡介

技術分享

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是一個管理平臺。可以對集群進行統一的部署。也是很方便的。

大數據系列之Hadoop框架