最全的大數(shù)據(jù)技術(shù)大合集:Hadoop家族、Cloudera系列、spark、storm...

責任編輯:editor004

2014-11-23 20:44:01

摘自:軟件定義世界(SDX)

是一個軟件框架,用以輕松編寫處理海量(TB級)數(shù)據(jù)的并行應用程序,以可靠和容錯的方式連接大型集群中上萬個節(jié)點(商用硬件)。盡管創(chuàng)建 Spark 是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實際上它是對 Hadoop 的補充,可以在 Hadoo 文件系統(tǒng)中并行運行。

【技術(shù)】最全的大數(shù)據(jù)技術(shù)大合集:Hadoop家族、Cloudera系列、spark、storm...

大數(shù)據(jù)我們都知道hadoop,可是還會各種各樣的技術(shù)進入我們的視野:Spark,Storm,impala,讓我們都反映不過來。為了能夠更好的架構(gòu)大數(shù)據(jù)項目,這里整理一下,供技術(shù)人員,項目經(jīng)理,架構(gòu)師選擇合適的技術(shù),了解大數(shù)據(jù)各種技術(shù)之間的關(guān)系,選擇合適的語言。

我們可以帶著下面問題來閱讀本文章:

1.hadoop都包含什么技術(shù)?

2.Cloudera公司與hadoop的關(guān)系是什么,都有什么產(chǎn)品,產(chǎn)品有什么特性?

3.Spark與hadoop的關(guān)聯(lián)是什么?

4.Storm與hadoop的關(guān)聯(lián)是什么?

hadoop家族

創(chuàng)始人:Doug Cutting

整個Hadoop家族由以下幾個子項目組成:

Hadoop Common:

Hadoop體系最底層的一個模塊,為Hadoop各子項目提供各 種工具,如:配置文件和日志操作等。

HDFS:

是Hadoop應用程序中主要的分布式儲存系統(tǒng), HDFS集群包含了一個NameNode(主節(jié)點),這個節(jié)點負責管理所有文件系統(tǒng)的元數(shù)據(jù)及存儲了真實數(shù)據(jù)的DataNode(數(shù)據(jù)節(jié)點,可以有很多)。HDFS針對海量數(shù)據(jù)所設計,所以相比傳統(tǒng)文件系統(tǒng)在大批量小文件上的優(yōu)化,HDFS優(yōu)化的則是對小批量大型文件的訪問和存儲。

MapReduce:

是一個軟件框架,用以輕松編寫處理海量(TB級)數(shù)據(jù)的并行應用程序,以可靠和容錯的方式連接大型集群中上萬個節(jié)點(商用硬件)。

Hive:

Apache Hive是Hadoop的一個數(shù)據(jù)倉庫系統(tǒng),促進了數(shù)據(jù)的綜述(將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表)、即席查詢以及存儲在Hadoop兼容系統(tǒng)中的大型數(shù)據(jù)集分析。Hive提供完整的SQL查詢功能——HiveQL語言,同時當使用這個語言表達一個邏輯變得低效和繁瑣時,HiveQL還允許傳統(tǒng)的Map/Reduce程序員使用自己定制的Mapper和Reducer。hive類似CloudBase,基于hadoop分布式計算平臺上的提供data warehouse的sql功能的一套軟件。使得存儲在hadoop里面的海量數(shù)據(jù) 的匯總,即席查詢簡單化。

Pig:

Apache Pig是一個用于大型數(shù)據(jù)集分析的平臺,它包含了一個用于數(shù)據(jù)分析應用的高級語言以及評估這些應用的基礎(chǔ)設施。Pig應用的閃光特性在于它們的結(jié)構(gòu)經(jīng)得起大量的并行,也就是說讓它們支撐起非常大的數(shù)據(jù)集。Pig的基礎(chǔ)設施層包含了產(chǎn)生Map-Reduce任務的編譯器。Pig的語言層當前包含了一個原生語言——Pig Latin,開發(fā)的初衷是易于編程和保證可擴展性。

Pig是SQL-like語言,是在MapReduce上構(gòu)建的一種高級查詢語言,把一些運算編譯進MapReduce模型的Map和Reduce中,并且用戶可以定義自己的功能。Yahoo網(wǎng)格運算部門開發(fā)的又一個克隆Google的項目Sawzall。

HBase:

Apache HBase是Hadoop數(shù)據(jù)庫,一個分布式、可擴展的大數(shù)據(jù)存儲。它提供了大數(shù)據(jù)集上隨機和實時的讀/寫訪問,并針對了商用服務器集群上的大型表格做出優(yōu)化——上百億行,上千萬列。其核心是Google Bigtable論文的開源實現(xiàn),分布式列式存儲。就像Bigtable利用GFS(Google File System)提供的分布式數(shù)據(jù)存儲一樣,它是Apache Hadoop在HDFS基礎(chǔ)上提供的一個類Bigatable。

ZooKeeper:

Zookeeper是Google的Chubby一個開源的實現(xiàn)。它是一個針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護、名字服務、 分布式同步、組服務等。ZooKeeper的目標就是封裝好復雜易出錯的關(guān)鍵服務,將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。

Avro:

Avro是doug cutting主持的RPC項目,有點類似Google的protobuf和Facebook的thrift。avro用來做以后hadoop的RPC,使hadoop的RPC模塊通信速度更快、數(shù)據(jù)結(jié)構(gòu)更緊湊。

Sqoop:

Sqoop是一個用來將Hadoop和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互轉(zhuǎn)移的工具,可以將一個關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)導入Hadoop的HDFS中,也可以將HDFS中數(shù)據(jù)導入關(guān)系型數(shù)據(jù)庫中。

Mahout:

Apache Mahout是個可擴展的機器學習和數(shù)據(jù)挖掘庫,當前Mahout支持主要的4個用例:

推薦挖掘:搜集用戶動作并以此給用戶推薦可能喜歡的事物。

聚集:收集文件并進行相關(guān)文件分組。

分類:從現(xiàn)有的分類文檔中學習,尋找文檔中的相似特征,并為無標簽的文檔進行正確的歸類。

頻繁項集挖掘:將一組項分組,并識別哪些個別項會經(jīng)常一起出現(xiàn)。

Cassandra:

Apache Cassandra是一個高性能、可線性擴展、高有效性數(shù)據(jù)庫,可以運行在商用硬件或云基礎(chǔ)設施上打造完美的任務關(guān)鍵性數(shù)據(jù)平臺。在橫跨數(shù)據(jù)中心的復制中,Cassandra同類最佳,為用戶提供更低的延時以及更可靠的災難備份。通過log-structured update、反規(guī)范化和物化視圖的強支持以及強大的內(nèi)置緩存,Cassandra的數(shù)據(jù)模型提供了方便的二級索引(column indexe)。

Chukwa:

Apache Chukwa是個開源的數(shù)據(jù)收集系統(tǒng),用以監(jiān)視大型分布系統(tǒng)。建立于HDFS和Map/Reduce框架之上,繼承了Hadoop的可擴展性和穩(wěn)定性。Chukwa同樣包含了一個靈活和強大的工具包,用以顯示、監(jiān)視和分析結(jié)果,以保證數(shù)據(jù)的使用達到最佳效果。

Ambari:

Apache Ambari是一個基于web的工具,用于配置、管理和監(jiān)視Apache Hadoop集群,支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同樣還提供了集群狀況儀表盤,比如heatmaps和查看MapReduce、Pig、Hive應用程序的能力,以友好的用戶界面對它們的性能特性進行診斷。

HCatalog

Apache HCatalog是Hadoop建立數(shù)據(jù)的映射表和存儲管理服務,它包括:

提供一個共享模式和數(shù)據(jù)類型機制。

提供一個抽象表,這樣用戶就不需要關(guān)注數(shù)據(jù)存儲的方式和地址。

為類似Pig、MapReduce及Hive這些數(shù)據(jù)處理工具提供互操作性。

Chukwa:

Chukwa是基于Hadoop的大集群監(jiān)控系統(tǒng),由yahoo貢獻。

Cloudera系列產(chǎn)品:

創(chuàng)始組織:Cloudera公司

1.Cloudera Manager:

有四大功能

(1)管理

(2)監(jiān)控

(3)診斷

(4)集成

2.Cloudera CDH:英文名稱:CDH (Cloudera’s Distribution, including Apache Hadoop)

Cloudera對hadoop做了相應的改變。

Cloudera公司的發(fā)行版,我們將該版本稱為CDH(Cloudera Distribution Hadoop)。

3.Cloudera Flume

Flume是Cloudera提供的日志收集系統(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);

Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。

Flume最早是Cloudera提供的日志收集系統(tǒng),目前是Apache下的一個孵化項目,F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力 Flume提供了從console(控制臺)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系統(tǒng),支持TCP和UDP等2種模式),exec(命令執(zhí)行)等數(shù)據(jù)源上收集數(shù)據(jù)的能力。

Flume采用了多Master的方式。為了保證配置數(shù)據(jù)的一致性,F(xiàn)lume[1]引入了ZooKeeper,用于保存配置數(shù)據(jù),ZooKeeper本身可保證配置數(shù)據(jù)的一致性和高可用,另外,在配置數(shù)據(jù)發(fā)生變化時,ZooKeeper可以通知Flume Master節(jié)點。Flume Master間使用gossip協(xié)議同步數(shù)據(jù)。

4.Cloudera Impala

Cloudera Impala對你存儲在Apache Hadoop在HDFS,HBase的數(shù)據(jù)提供直接查詢互動的SQL。除了像Hive使用相同的統(tǒng)一存儲平臺,Impala也使用相同的元數(shù)據(jù),SQL語法(Hive SQL),ODBC驅(qū)動程序和用戶界面(Hue Beeswax)。Impala還提供了一個熟悉的面向批量或?qū)崟r查詢和統(tǒng)一平臺。

5.Cloudera hue

Hue是cdh專門的一套web管理器,它包括3個部分hue ui,hue server,hue db。hue提供所有的cdh組件的shell界面的接口。你可以在hue編寫mr,查看修改hdfs的文件,管理hive的元數(shù)據(jù),運行Sqoop,編寫Oozie工作流等大量工作。

Spark

創(chuàng)始組織:加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發(fā)

Spark 是一種與 Hadoop 相似的開源集群計算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現(xiàn)得更加優(yōu)越,換句話說,Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負載。

Spark 是在 Scala 語言中實現(xiàn)的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數(shù)據(jù)集。

盡管創(chuàng)建 Spark 是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實際上它是對 Hadoop 的補充,可以在 Hadoo 文件系統(tǒng)中并行運行。通過名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發(fā),可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應用程序。

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號