大數(shù)據(jù)技術(shù)Hadoop入門(mén)理論系列之一----hadoop生態(tài)圈介紹

大數(shù)據(jù)技術(shù)Hadoop入門(mén)理論系列之一----hadoop生態(tài)圈介紹    

10年的臨泉網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整臨泉建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“臨泉網(wǎng)站設(shè)計(jì)”,“臨泉網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

Technorati 標(biāo)記: hadoop,生態(tài)圈,ecosystem,yarn,spark,入門(mén)

 

1. hadoop 生態(tài)概況

Hadoop是一個(gè)由Apache基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。

用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。

具有可靠、高效、可伸縮的特點(diǎn)。

Hadoop的核心是YARN,HDFS和Mapreduce

下圖是hadoop生態(tài)系統(tǒng),集成spark生態(tài)圈。在未來(lái)一段時(shí)間內(nèi),hadoop將于spark共存,hadoop與spark

都能部署在yarn、mesos的資源管理系統(tǒng)之上

大數(shù)據(jù)技術(shù)Hadoop入門(mén)理論系列之一----hadoop生態(tài)圈介紹

下面將分別對(duì)以上各組件進(jìn)行簡(jiǎn)要介紹,具體介紹參見(jiàn)后續(xù)系列博文。

2、HDFS(Hadoop分布式文件系統(tǒng))

源自于Google的GFS論文,發(fā)表于2003年10月,HDFS是GFS克隆版。

HDFS是Hadoop體系中數(shù)據(jù)存儲(chǔ)管理的基礎(chǔ)。它是一個(gè)高度容錯(cuò)的系統(tǒng),能檢測(cè)和應(yīng)對(duì)硬件故障,用于在低成本的通用硬件上運(yùn)行。

HDFS簡(jiǎn)化了文件的一致性模型,通過(guò)流式數(shù)據(jù)訪問(wèn),提供高吞吐量應(yīng)用程序數(shù)據(jù)訪問(wèn)功能,適合帶有大型數(shù)據(jù)集的應(yīng)用程序。

它提供了一次寫(xiě)入多次讀取的機(jī)制,數(shù)據(jù)以塊的形式,同時(shí)分布在集群不同物理機(jī)器上。

3、Mapreduce(分布式計(jì)算框架)

源自于google的MapReduce論文,發(fā)表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。

MapReduce是一種分布式計(jì)算模型,用以進(jìn)行大數(shù)據(jù)量的計(jì)算。它屏蔽了分布式計(jì)算框架細(xì)節(jié),將計(jì)算抽象成map和reduce兩部分,

其中Map對(duì)數(shù)據(jù)集上的獨(dú)立元素進(jìn)行指定的操作,生成鍵-值對(duì)形式中間結(jié)果。Reduce則對(duì)中間結(jié)果中相同“鍵”的所有“值”進(jìn)行規(guī)約,以得到最終結(jié)果。

MapReduce非常適合在大量計(jì)算機(jī)組成的分布式并行環(huán)境里進(jìn)行數(shù)據(jù)處理。

4. HBASE(分布式列存數(shù)據(jù)庫(kù))

源自Google的Bigtable論文,發(fā)表于2006年11月,HBase是Google Bigtable克隆版

HBase是一個(gè)建立在HDFS之上,面向列的針對(duì)結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動(dòng)態(tài)模式數(shù)據(jù)庫(kù)。

HBase采用了BigTable的數(shù)據(jù)模型:增強(qiáng)的稀疏排序映射表(Key/Value),其中,鍵由行關(guān)鍵字、列關(guān)鍵字和時(shí)間戳構(gòu)成。

HBase提供了對(duì)大規(guī)模數(shù)據(jù)的隨機(jī)、實(shí)時(shí)讀寫(xiě)訪問(wèn),同時(shí),HBase中保存的數(shù)據(jù)可以使用MapReduce來(lái)處理,它將數(shù)據(jù)存儲(chǔ)和并行計(jì)算完美地結(jié)合在一起。

5. Zookeeper(分布式協(xié)作服務(wù))

源自Google的Chubby論文,發(fā)表于2006年11月,Zookeeper是Chubby克隆版

解決分布式環(huán)境下的數(shù)據(jù)管理問(wèn)題:統(tǒng)一命名,狀態(tài)同步,集群管理,配置同步等。

Hadoop的許多組件依賴于Zookeeper,它運(yùn)行在計(jì)算機(jī)集群上面,用于管理Hadoop操作。

6. HIVE(數(shù)據(jù)倉(cāng)庫(kù))

由facebook開(kāi)源,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計(jì)問(wèn)題。

Hive定義了一種類似SQL的查詢語(yǔ)言(HQL),將SQL轉(zhuǎn)化為MapReduce任務(wù)在Hadoop上執(zhí)行。通常用于離線分析。

HQL用于運(yùn)行存儲(chǔ)在Hadoop上的查詢語(yǔ)句,Hive讓不熟悉MapReduce開(kāi)發(fā)人員也能編寫(xiě)數(shù)據(jù)查詢語(yǔ)句,然后這些語(yǔ)句被翻譯為Hadoop上面的MapReduce任務(wù)。

7.Pig(ad-hoc腳本)

由yahoo!開(kāi)源,設(shè)計(jì)動(dòng)機(jī)是提供一種基于MapReduce的ad-hoc(計(jì)算在query時(shí)發(fā)生)數(shù)據(jù)分析工具

Pig定義了一種數(shù)據(jù)流語(yǔ)言—Pig Latin,它是MapReduce編程的復(fù)雜性的抽象,Pig平臺(tái)包括運(yùn)行環(huán)境和用于分析Hadoop數(shù)據(jù)集的腳本語(yǔ)言(Pig Latin)。

其編譯器將Pig Latin翻譯成MapReduce程序序列將腳本轉(zhuǎn)換為MapReduce任務(wù)在Hadoop上執(zhí)行。通常用于進(jìn)行離線分析。

8.Sqoop(數(shù)據(jù)ETL/同步工具)

Sqoop是SQL-to-Hadoop的縮寫(xiě),主要用于傳統(tǒng)數(shù)據(jù)庫(kù)和Hadoop之前傳輸數(shù)據(jù)。數(shù)據(jù)的導(dǎo)入和導(dǎo)出本質(zhì)上是Mapreduce程序,充分利用了MR的并行化和容錯(cuò)性。

Sqoop利用數(shù)據(jù)庫(kù)技術(shù)描述數(shù)據(jù)架構(gòu),用于在關(guān)系數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)和Hadoop之間轉(zhuǎn)移數(shù)據(jù)。

9.Flume(日志收集工具)

Cloudera開(kāi)源的日志收集系統(tǒng),具有分布式、高可靠、高容錯(cuò)、易于定制和擴(kuò)展的特點(diǎn)。

它將數(shù)據(jù)從產(chǎn)生、傳輸、處理并最終寫(xiě)入目標(biāo)的路徑的過(guò)程抽象為數(shù)據(jù)流,在具體的數(shù)據(jù)流中,數(shù)據(jù)源支持在Flume中定制數(shù)據(jù)發(fā)送方,從而支持收集各種不同協(xié)議數(shù)據(jù)。

同時(shí),F(xiàn)lume數(shù)據(jù)流提供對(duì)日志數(shù)據(jù)進(jìn)行簡(jiǎn)單處理的能力,如過(guò)濾、格式轉(zhuǎn)換等。此外,F(xiàn)lume還具有能夠?qū)⑷罩緦?xiě)往各種數(shù)據(jù)目標(biāo)(可定制)的能力。

總的來(lái)說(shuō),F(xiàn)lume是一個(gè)可擴(kuò)展、適合復(fù)雜環(huán)境的海量日志收集系統(tǒng)。當(dāng)然也可以用于收集其他類型數(shù)據(jù)

10.Mahout(數(shù)據(jù)挖掘算法庫(kù))

Mahout起源于2008年,最初是Apache Lucent的子項(xiàng)目,它在極短的時(shí)間內(nèi)取得了長(zhǎng)足的發(fā)展,現(xiàn)在是Apache的頂級(jí)項(xiàng)目。

Mahout的主要目標(biāo)是創(chuàng)建一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開(kāi)發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。

Mahout現(xiàn)在已經(jīng)包含了聚類、分類、推薦引擎(協(xié)同過(guò)濾)和頻繁集挖掘等廣泛使用的數(shù)據(jù)挖掘方法。

除了算法,Mahout還包含數(shù)據(jù)的輸入/輸出工具、與其他存儲(chǔ)系統(tǒng)(如數(shù)據(jù)庫(kù)、MongoDB 或Cassandra)集成等數(shù)據(jù)挖掘支持架構(gòu)。

11. Oozie(工作流調(diào)度器)

Oozie是一個(gè)可擴(kuò)展的工作體系,集成于Hadoop的堆棧,用于協(xié)調(diào)多個(gè)MapReduce作業(yè)的執(zhí)行。它能夠管理一個(gè)復(fù)雜的系統(tǒng),基于外部事件來(lái)執(zhí)行,外部事件包括數(shù)據(jù)的定時(shí)和數(shù)據(jù)的出現(xiàn)。

Oozie工作流是放置在控制依賴DAG(有向無(wú)環(huán)圖 Direct Acyclic Graph)中的一組動(dòng)作(例如,Hadoop的Map/Reduce作業(yè)、Pig作業(yè)等),其中指定了動(dòng)作執(zhí)行的順序。

Oozie使用hPDL(一種XML流程定義語(yǔ)言)來(lái)描述這個(gè)圖。

12. Yarn(分布式資源管理器)

YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基礎(chǔ)上演變而來(lái)的,主要是為了解決原始Hadoop擴(kuò)展性較差,不支持多計(jì)算框架而提出的。
Yarn是下一代 Hadoop 計(jì)算平臺(tái),yarn是一個(gè)通用的運(yùn)行時(shí)框架,用戶可以編寫(xiě)自己的計(jì)算框架,在該運(yùn)行環(huán)境中運(yùn)行。
用于自己編寫(xiě)的框架作為客戶端的一個(gè)lib,在運(yùn)用提交作業(yè)時(shí)打包即可。該框架為提供了以下幾個(gè)組件:

  - 資源管理:包括應(yīng)用程序管理和機(jī)器資源管理

  - 資源雙層調(diào)度

  - 容錯(cuò)性:各個(gè)組件均有考慮容錯(cuò)性

  - 擴(kuò)展性:可擴(kuò)展到上萬(wàn)個(gè)節(jié)點(diǎn)

13. Mesos(分布式資源管理器)

  Mesos誕生于UC Berkeley的一個(gè)研究項(xiàng)目,現(xiàn)已成為Apache項(xiàng)目,當(dāng)前有一些公司使用Mesos管理集群資源,比如Twitter。

  與yarn類似,Mesos是一個(gè)資源統(tǒng)一管理和調(diào)度的平臺(tái),同樣支持比如MR、steaming等多種運(yùn)算框架。

14. Tachyon(分布式內(nèi)存文件系統(tǒng))

Tachyon(/'t?ki:??n/ 意為超光速粒子)是以內(nèi)存為中心的分布式文件系統(tǒng),擁有高性能和容錯(cuò)能力,

能夠?yàn)榧嚎蚣埽ㄈ鏢park、MapReduce)提供可靠的內(nèi)存級(jí)速度的文件共享服務(wù)。

Tachyon誕生于UC Berkeley的AMPLab。

15. Tez(DAG計(jì)算模型)

Tez是Apache最新開(kāi)源的支持DAG作業(yè)的計(jì)算框架,它直接源于MapReduce框架,核心思想是將Map和Reduce兩個(gè)操作進(jìn)一步拆分,

即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,

這樣,這些分解后的元操作可以任意靈活組合,產(chǎn)生新的操作,這些操作經(jīng)過(guò)一些控制程序組裝后,可形成一個(gè)大的DAG作業(yè)。

目前hive支持mr、tez計(jì)算模型,tez能完美二進(jìn)制mr程序,提升運(yùn)算性能。

16. Spark(內(nèi)存DAG計(jì)算模型)

Spark是一個(gè)Apache項(xiàng)目,它被標(biāo)榜為“快如閃電的集群計(jì)算”。它擁有一個(gè)繁榮的開(kāi)源社區(qū),并且是目前最活躍的Apache項(xiàng)目。

最早Spark是UC Berkeley AMP lab所開(kāi)源的類Hadoop MapReduce的通用的并行計(jì)算框架。

Spark提供了一個(gè)更快、更通用的數(shù)據(jù)處理平臺(tái)。和Hadoop相比,Spark可以讓你的程序在內(nèi)存中運(yùn)行時(shí)速度提升100倍,或者在磁盤(pán)上運(yùn)行時(shí)速度提升10倍

17. Giraph(圖計(jì)算模型)

Apache Giraph是一個(gè)可伸縮的分布式迭代圖處理系統(tǒng), 基于Hadoop平臺(tái),靈感來(lái)自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。

最早出自雅虎。雅虎在開(kāi)發(fā)Giraph時(shí)采用了Google工程師2010年發(fā)表的論文《Pregel:大規(guī)模圖表處理系統(tǒng)》中的原理。后來(lái),雅虎將Giraph捐贈(zèng)給Apache軟件基金會(huì)。

目前所有人都可以下載Giraph,它已經(jīng)成為Apache軟件基金會(huì)的開(kāi)源項(xiàng)目,并得到Facebook的支持,獲得多方面的改進(jìn)。

18.GraphX(圖計(jì)算模型)

Spark GraphX最先是伯克利AMPLAB的一個(gè)分布式圖計(jì)算框架項(xiàng)目,目前整合在spark運(yùn)行框架中,為其提供BSP大規(guī)模并行圖計(jì)算能力。

19. MLib(機(jī)器學(xué)習(xí)庫(kù))

Spark MLlib是一個(gè)機(jī)器學(xué)習(xí)庫(kù),它提供了各種各樣的算法,這些算法用來(lái)在集群上針對(duì)分類、回歸、聚類、協(xié)同過(guò)濾等。

20. Streaming(流計(jì)算模型)

Spark Streaming支持對(duì)流數(shù)據(jù)的實(shí)時(shí)處理,以微批的方式對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行計(jì)算

21. Kafka(分布式消息隊(duì)列)

Kafka是Linkedin于2010年12月份開(kāi)源的消息系統(tǒng),它主要用于處理活躍的流式數(shù)據(jù)。

活躍的流式數(shù)據(jù)在web網(wǎng)站應(yīng)用中非常常見(jiàn),這些數(shù)據(jù)包括網(wǎng)站的pv、用戶訪問(wèn)了什么內(nèi)容,搜索了什么內(nèi)容等。

這些數(shù)據(jù)通常以日志的形式記錄下來(lái),然后每隔一段時(shí)間進(jìn)行一次統(tǒng)計(jì)處理。

22. Phoenix(hbase sql接口)

Apache Phoenix 是HBase的SQL驅(qū)動(dòng),Phoenix 使得Hbase 支持通過(guò)JDBC的方式進(jìn)行訪問(wèn),并將你的SQL查詢轉(zhuǎn)換成Hbase的掃描和相應(yīng)的動(dòng)作。

23. ranger(安全管理工具)

Apache ranger是一個(gè)hadoop集群權(quán)限框架,提供操作、監(jiān)控、管理復(fù)雜的數(shù)據(jù)權(quán)限,它提供一個(gè)集中的管理機(jī)制,管理基于yarn的hadoop生態(tài)圈的所有數(shù)據(jù)權(quán)限。

24. knox(hadoop安全網(wǎng)關(guān))

Apache knox是一個(gè)訪問(wèn)hadoop集群的restapi網(wǎng)關(guān),它為所有rest訪問(wèn)提供了一個(gè)簡(jiǎn)單的訪問(wèn)接口點(diǎn),能完成3A認(rèn)證(Authentication,Authorization,Auditing)和SSO(單點(diǎn)登錄)等

25. falcon(數(shù)據(jù)生命周期管理工具)

Apache Falcon 是一個(gè)面向Hadoop的、新的數(shù)據(jù)處理和管理平臺(tái),設(shè)計(jì)用于數(shù)據(jù)移動(dòng)、數(shù)據(jù)管道協(xié)調(diào)、生命周期管理和數(shù)據(jù)發(fā)現(xiàn)。它使終端用戶可以快速地將他們的數(shù)據(jù)及其相關(guān)的處理和管理任務(wù)“上載(onboard)”到Hadoop集群。

26.Ambari(安裝部署配置管理工具)

Apache Ambari 的作用來(lái)說(shuō),就是創(chuàng)建、管理、監(jiān)視 Hadoop 的集群,是為了讓 Hadoop 以及相關(guān)的大數(shù)據(jù)軟件更容易使用的一個(gè)web工具。

 

參考文獻(xiàn):

Hadoop生態(tài)系統(tǒng)介紹  http://blog.csdn.net/qa962839575/article/details/44256769?ref=myread

大數(shù)據(jù)和Hadoop生態(tài)圈,Hadoop發(fā)行版和基于Hadoop的企業(yè)級(jí)應(yīng)用 http://www.36dsj.com/archives/26942

Oozie介紹 http://blog.csdn.net/wf1982/article/details/7200663

統(tǒng)一資源管理與調(diào)度平臺(tái)(系統(tǒng))介紹 http://blog.csdn.net/meeasyhappy/article/details/8669688

Tachyon簡(jiǎn)介http://blog.csdn.net/u014252240/article/details/41810849

Apache Tez:一個(gè)運(yùn)行在YARN之上支持DAG作業(yè)的計(jì)算框架 http://segmentfault.com/a/1190000000458726

Giraph:基于Hadoop的開(kāi)源圖形處理平臺(tái) http://tech.it168.com/a2013/0821/1523/000001523700.shtml

Hadoop家族學(xué)習(xí)路線圖 http://blog.fens.me/hadoop-family-roadmap/

基于Spark的圖計(jì)算框架 GraphX 入門(mén)介紹  http://www.open-open.com/lib/view/open1420689305781.html

Apache Spark 入門(mén)簡(jiǎn)介 http://blog.jobbole.com/89446/

Ambari——大數(shù)據(jù)平臺(tái)的搭建利器 http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html

消息系統(tǒng)Kafka介紹 http://dongxicheng.org/search-engine/kafka/

使用Apache Phoenix 實(shí)現(xiàn) SQL 操作HBase http://www.tuicool.com/articles/vu6jae

面向Hadoop的、新的數(shù)據(jù)處理和管理平臺(tái):Apache Falcon http://www.open-open.com/lib/view/open1422533435767.html

文章題目:大數(shù)據(jù)技術(shù)Hadoop入門(mén)理論系列之一----hadoop生態(tài)圈介紹
當(dāng)前路徑:http://muchs.cn/article14/gdcide.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃全網(wǎng)營(yíng)銷推廣、服務(wù)器托管用戶體驗(yàn)、電子商務(wù)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)