天天看點

最全的大資料技術大合集:Hadoop家族、Cloudera系列、spark

最全的大資料技術大合集:Hadoop家族、Cloudera系列、spark

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

1.hadoop都包含什麼技術?

2.cloudera公司與hadoop的關系是什麼,都有什麼産品,産品有什麼特性?

3.spark與hadoop的關聯是什麼?

4.storm與hadoop的關聯是什麼?

hadoop家族

最全的大資料技術大合集:Hadoop家族、Cloudera系列、spark

創始人:doug cutting

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

hadoop common:

hadoop體系最底層的一個子產品,為hadoop各子項目提供各 種工具,如:配置檔案和日志操作等。

hdfs:

是hadoop應用程式中主要的分布式儲存系統, hdfs叢集包含了一個namenode(主節點),這個節點負責管理所有檔案系統的中繼資料及存儲了真實資料的datanode(資料節點,可以有很多)。hdfs針對海量資料所設計,是以相比傳統檔案系統在大批量小檔案上的優化,hdfs優化的則是對小批量大型檔案的通路和存儲。

mapreduce:

是一個軟體架構,用以輕松編寫處理海量(tb級)資料的并行應用程式,以可靠和容錯的方式連接配接大型叢集中上萬個節點(商用硬體)。

hive:

apache hive是hadoop的一個資料倉庫系統,促進了資料的綜述(将結構化的資料檔案映射為一張資料庫表)、即席查詢以及存儲在hadoop相容系統中的大型資料集分析。hive提供完整的sql查詢功能——hiveql語言,同時當使用這個語言表達一個邏輯變得低效和繁瑣時,hiveql還允許傳統的map/reduce程式員使用自己定制的mapper和reducer。hive類似cloudbase,基于hadoop分布式計算平台上的提供data warehouse的sql功能的一套軟體。使得存儲在hadoop裡面的海量資料 的彙總,即席查詢簡單化。

pig:

apache pig是一個用于大型資料集分析的平台,它包含了一個用于資料分析應用的進階語言以及評估這些應用的基礎設施。pig應用的閃光特性在于它們的結構經得起大量的并行,也就是說讓它們支撐起非常大的資料集。pig的基礎設施層包含了産生map-reduce任務的編譯器。pig的語言層目前包含了一個原生語言——pig latin,開發的初衷是易于程式設計和保證可擴充性。

pig是sql-like語言,是在mapreduce上建構的一種進階查詢語言,把一些運算編譯進mapreduce模型的map和reduce中,并且使用者可以定義自己的功能。yahoo網格運算部門開發的又一個克隆google的項目sawzall。

hbase:

apache hbase是hadoop資料庫,一個分布式、可擴充的大資料存儲。它提供了大資料集上随機和實時的讀/寫通路,并針對了商用伺服器叢集上的大型表格做出優化——上百億行,上千萬列。其核心是google bigtable論文的開源實作,分布式列式存儲。就像bigtable利用gfs(google file system)提供的分布式資料存儲一樣,它是apache hadoop在hdfs基礎上提供的一個類bigatable。

zookeeper:

zookeeper是google的chubby一個開源的實作。它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分布式同步、組服務等。zookeeper的目标就是封裝好複雜易出錯的關鍵服務,将簡單易用的接口和性能高效、功能穩定的系統提供給使用者。

avro:

avro是doug cutting主持的rpc項目,有點類似google的protobuf和facebook的thrift。avro用來做以後hadoop的rpc,使hadoop的rpc子產品通信速度更快、資料結構更緊湊。

sqoop:

sqoop是一個用來将hadoop和關系型資料庫中的資料互相轉移的工具,可以将一個關系型資料庫中資料導入hadoop的hdfs中,也可以将hdfs中資料導入關系型資料庫中。

mahout:

apache mahout是個可擴充的機器學習和資料挖掘庫,目前mahout支援主要的4個用例:

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

聚集:收集檔案并進行相關檔案分組。

分類:從現有的分類文檔中學習,尋找文檔中的相似特征,并為無标簽的文檔進行正确的歸類。

頻繁項集挖掘:将一組項分組,并識别哪些個别項會經常一起出現。

cassandra:

apache cassandra是一個高性能、可線性擴充、高有效性資料庫,可以運作在商用硬體或雲基礎設施上打造完美的任務關鍵性資料平台。在橫跨資料中心的複制中,cassandra同類最佳,為使用者提供更低的延時以及更可靠的災難備份。通過log-structured update、反規範化和物化視圖的強支援以及強大的内置緩存,cassandra的資料模型提供了友善的二級索引(column indexe)。

chukwa:

apache chukwa是個開源的資料收集系統,用以監視大型分布系統。建立于hdfs和map/reduce架構之上,繼承了hadoop的可擴充性和穩定性。chukwa同樣包含了一個靈活和強大的工具包,用以顯示、監視和分析結果,以保證資料的使用達到最佳效果。

ambari:

apache ambari是一個基于web的工具,用于配置、管理和監視apache hadoop叢集,支援hadoop hdfs,、hadoop mapreduce、hive、hcatalog,、hbase、zookeeper、oozie、pig和sqoop。ambari同樣還提供了叢集狀況儀表盤,比如heatmaps和檢視mapreduce、pig、hive應用程式的能力,以友好的使用者界面對它們的性能特性進行診斷。

hcatalog

apache hcatalog是hadoop建立資料的映射表和存儲管理服務,它包括:

提供一個共享模式和資料類型機制。

提供一個抽象表,這樣使用者就不需要關注資料存儲的方式和位址。

為類似pig、mapreduce及hive這些資料處理工具提供互操作性。

chukwa是基于hadoop的大叢集監控系統,由yahoo貢獻。

cloudera系列産品:

創始組織:cloudera公司

1.cloudera manager:

有四大功能

(1)管理

(2)監控

(3)診斷

(4)內建

2.cloudera cdh:英文名稱:cdh (cloudera’s distribution, including apache hadoop)

cloudera對hadoop做了相應的改變。

cloudera公司的發行版,我們将該版本稱為cdh(cloudera distribution hadoop)。

3.cloudera flume

flume是cloudera提供的日志收集系統,flume支援在日志系統中定制各類資料發送方,用于收集資料;

flume是cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,flume支援在日志系統中定制各類資料發送方,用于收集資料;同時,flume提供對資料進行簡單處理,并寫到各種資料接受方(可定制)的能力。

flume最早是cloudera提供的日志收集系統,目前是apache下的一個孵化項目,flume支援在日志系統中定制各類資料發送方,用于收集資料;同時,flume提供對資料進行簡單處理,并寫到各種資料接受方(可定制)的能力 flume提供了從console(控制台)、rpc(thrift-rpc)、text(檔案)、tail(unix tail)、syslog(syslog日志系統,支援tcp和udp等2種模式),exec(指令執行)等資料源上收集資料的能力。

flume采用了多master的方式。為了保證配置資料的一緻性,flume[1]引入了zookeeper,用于儲存配置資料,zookeeper本身可保證配置資料的一緻性和高可用,另外,在配置資料發生變化時,zookeeper可以通知flume master節點。flume master間使用gossip協定同步資料。

4.cloudera impala

cloudera impala對你存儲在apache hadoop在hdfs,hbase的資料提供直接查詢互動的sql。除了像hive使用相同的統一存儲平台,impala也使用相同的中繼資料,sql文法(hive sql),odbc驅動程式和使用者界面(hue beeswax)。impala還提供了一個熟悉的面向批量或實時查詢和統一平台。

5.cloudera hue

hue是cdh專門的一套web管理器,它包括3個部分hue ui,hue server,hue db。hue提供所有的cdh元件的shell界面的接口。你可以在hue編寫mr,檢視修改hdfs的檔案,管理hive的中繼資料,運作sqoop,編寫oozie工作流等大量工作。

spark

最全的大資料技術大合集:Hadoop家族、Cloudera系列、spark

創始組織:加州大學伯克利分校 amp 實驗室 (algorithms, machines, and people lab) 開發

spark 是一種與 hadoop 相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 spark 在某些工作負載方面表現得更加優越,換句話說,spark 啟用了記憶體分布資料集,除了能夠提供互動式查詢外,它還可以優化疊代工作負載。

spark 是在 scala 語言中實作的,它将 scala 用作其應用程式架構。與 hadoop 不同,spark 和 scala 能夠緊密內建,其中的 scala 可以像操作本地集合對象一樣輕松地操作分布式資料集。

盡管建立 spark 是為了支援分布式資料集上的疊代作業,但是實際上它是對 hadoop 的補充,可以在 hadoo 檔案系統中并行運作。通過名為 mesos 的第三方叢集架構可以支援此行為。spark 由加州大學伯克利分校 amp 實驗室 (algorithms, machines, and people lab) 開發,可用來建構大型的、低延遲的資料分析應用程式。

storm

最全的大資料技術大合集:Hadoop家族、Cloudera系列、spark

創始人:twitter

twitter将storm正式開源了,這是一個分布式的、容錯的實時計算系統,它被托管在github上,遵循 eclipse public license 1.0。storm是由backtype開發的實時處理系統,backtype現在已在twitter麾下。github上的最新版本是storm 0.5.2,基本是用clojure寫的。

——轉自煉數成金