Technorati 標記: hadoop,生態(tài)圈,ecosystem,yarn,spark,入門
1. hadoop 生態(tài)概況
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構。
用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進行高速運算和存儲。
具有可靠、高效、可伸縮的特點。
Hadoop的核心是YARN,HDFS和Mapreduce
下圖是hadoop生態(tài)系統(tǒng),集成spark生態(tài)圈。在未來一段時間內,hadoop將于spark共存,hadoop與spark
都能部署在yarn、mesos的資源管理系統(tǒng)之上
下面將分別對以上各組件進行簡要介紹,具體介紹參見后續(xù)系列博文。
源自于Google的GFS論文,發(fā)表于2003年10月,HDFS是GFS克隆版。
HDFS是Hadoop體系中數(shù)據(jù)存儲管理的基礎。它是一個高度容錯的系統(tǒng),能檢測和應對硬件故障,用于在低成本的通用硬件上運行。
HDFS簡化了文件的一致性模型,通過流式數(shù)據(jù)訪問,提供高吞吐量應用程序數(shù)據(jù)訪問功能,適合帶有大型數(shù)據(jù)集的應用程序。
它提供了一次寫入多次讀取的機制,數(shù)據(jù)以塊的形式,同時分布在集群不同物理機器上。
源自于google的MapReduce論文,發(fā)表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。
MapReduce是一種分布式計算模型,用以進行大數(shù)據(jù)量的計算。它屏蔽了分布式計算框架細節(jié),將計算抽象成map和reduce兩部分,
其中Map對數(shù)據(jù)集上的獨立元素進行指定的操作,生成鍵-值對形式中間結果。Reduce則對中間結果中相同“鍵”的所有“值”進行規(guī)約,以得到最終結果。
MapReduce非常適合在大量計算機組成的分布式并行環(huán)境里進行數(shù)據(jù)處理。
4. HBASE(分布式列存數(shù)據(jù)庫)
源自Google的Bigtable論文,發(fā)表于2006年11月,HBase是Google Bigtable克隆版
HBase是一個建立在HDFS之上,面向列的針對結構化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動態(tài)模式數(shù)據(jù)庫。
HBase采用了BigTable的數(shù)據(jù)模型:增強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。
HBase提供了對大規(guī)模數(shù)據(jù)的隨機、實時讀寫訪問,同時,HBase中保存的數(shù)據(jù)可以使用MapReduce來處理,它將數(shù)據(jù)存儲和并行計算完美地結合在一起。
5. Zookeeper(分布式協(xié)作服務)
源自Google的Chubby論文,發(fā)表于2006年11月,Zookeeper是Chubby克隆版
解決分布式環(huán)境下的數(shù)據(jù)管理問題:統(tǒng)一命名,狀態(tài)同步,集群管理,配置同步等。
Hadoop的許多組件依賴于Zookeeper,它運行在計算機集群上面,用于管理Hadoop操作。
6. HIVE(數(shù)據(jù)倉庫)
由facebook開源,最初用于解決海量結構化的日志數(shù)據(jù)統(tǒng)計問題。
Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執(zhí)行。通常用于離線分析。
HQL用于運行存儲在Hadoop上的查詢語句,Hive讓不熟悉MapReduce開發(fā)人員也能編寫數(shù)據(jù)查詢語句,然后這些語句被翻譯為Hadoop上面的MapReduce任務。
7.Pig(ad-hoc腳本)
由yahoo!開源,設計動機是提供一種基于MapReduce的ad-hoc(計算在query時發(fā)生)數(shù)據(jù)分析工具
Pig定義了一種數(shù)據(jù)流語言—Pig Latin,它是MapReduce編程的復雜性的抽象,Pig平臺包括運行環(huán)境和用于分析Hadoop數(shù)據(jù)集的腳本語言(Pig Latin)。
其編譯器將Pig Latin翻譯成MapReduce程序序列將腳本轉換為MapReduce任務在Hadoop上執(zhí)行。通常用于進行離線分析。
8.Sqoop(數(shù)據(jù)ETL/同步工具)
Sqoop是SQL-to-Hadoop的縮寫,主要用于傳統(tǒng)數(shù)據(jù)庫和Hadoop之前傳輸數(shù)據(jù)。數(shù)據(jù)的導入和導出本質上是Mapreduce程序,充分利用了MR的并行化和容錯性。
Sqoop利用數(shù)據(jù)庫技術描述數(shù)據(jù)架構,用于在關系數(shù)據(jù)庫、數(shù)據(jù)倉庫和Hadoop之間轉移數(shù)據(jù)。
9.Flume(日志收集工具)
Cloudera開源的日志收集系統(tǒng),具有分布式、高可靠、高容錯、易于定制和擴展的特點。
它將數(shù)據(jù)從產生、傳輸、處理并最終寫入目標的路徑的過程抽象為數(shù)據(jù)流,在具體的數(shù)據(jù)流中,數(shù)據(jù)源支持在Flume中定制數(shù)據(jù)發(fā)送方,從而支持收集各種不同協(xié)議數(shù)據(jù)。
同時,F(xiàn)lume數(shù)據(jù)流提供對日志數(shù)據(jù)進行簡單處理的能力,如過濾、格式轉換等。此外,F(xiàn)lume還具有能夠將日志寫往各種數(shù)據(jù)目標(可定制)的能力。
總的來說,F(xiàn)lume是一個可擴展、適合復雜環(huán)境的海量日志收集系統(tǒng)。當然也可以用于收集其他類型數(shù)據(jù)
Mahout起源于2008年,最初是Apache Lucent的子項目,它在極短的時間內取得了長足的發(fā)展,現(xiàn)在是Apache的頂級項目。
Mahout的主要目標是創(chuàng)建一些可擴展的機器學習領域經典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應用程序。
Mahout現(xiàn)在已經包含了聚類、分類、推薦引擎(協(xié)同過濾)和頻繁集挖掘等廣泛使用的數(shù)據(jù)挖掘方法。
除了算法,Mahout還包含數(shù)據(jù)的輸入/輸出工具、與其他存儲系統(tǒng)(如數(shù)據(jù)庫、MongoDB 或Cassandra)集成等數(shù)據(jù)挖掘支持架構。
11. Oozie(工作流調度器)
Oozie是一個可擴展的工作體系,集成于Hadoop的堆棧,用于協(xié)調多個MapReduce作業(yè)的執(zhí)行。它能夠管理一個復雜的系統(tǒng),基于外部事件來執(zhí)行,外部事件包括數(shù)據(jù)的定時和數(shù)據(jù)的出現(xiàn)。
Oozie工作流是放置在控制依賴DAG(有向無環(huán)圖 Direct Acyclic Graph)中的一組動作(例如,Hadoop的Map/Reduce作業(yè)、Pig作業(yè)等),其中指定了動作執(zhí)行的順序。
Oozie使用hPDL(一種XML流程定義語言)來描述這個圖。
12. Yarn(分布式資源管理器)
- 資源管理:包括應用程序管理和機器資源管理
- 資源雙層調度
- 容錯性:各個組件均有考慮容錯性
- 擴展性:可擴展到上萬個節(jié)點
13. Mesos(分布式資源管理器)
Mesos誕生于UC Berkeley的一個研究項目,現(xiàn)已成為Apache項目,當前有一些公司使用Mesos管理集群資源,比如Twitter。
與yarn類似,Mesos是一個資源統(tǒng)一管理和調度的平臺,同樣支持比如MR、steaming等多種運算框架。
14. Tachyon(分布式內存文件系統(tǒng))
Tachyon(/'t?ki:??n/ 意為超光速粒子)是以內存為中心的分布式文件系統(tǒng),擁有高性能和容錯能力,
能夠為集群框架(如Spark、MapReduce)提供可靠的內存級速度的文件共享服務。
Tachyon誕生于UC Berkeley的AMPLab。
15. Tez(DAG計算模型)
Tez是Apache最新開源的支持DAG作業(yè)的計算框架,它直接源于MapReduce框架,核心思想是將Map和Reduce兩個操作進一步拆分,
即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,
這樣,這些分解后的元操作可以任意靈活組合,產生新的操作,這些操作經過一些控制程序組裝后,可形成一個大的DAG作業(yè)。
目前hive支持mr、tez計算模型,tez能完美二進制mr程序,提升運算性能。
16. Spark(內存DAG計算模型)
Spark是一個Apache項目,它被標榜為“快如閃電的集群計算”。它擁有一個繁榮的開源社區(qū),并且是目前最活躍的Apache項目。
最早Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行計算框架。
Spark提供了一個更快、更通用的數(shù)據(jù)處理平臺。和Hadoop相比,Spark可以讓你的程序在內存中運行時速度提升100倍,或者在磁盤上運行時速度提升10倍
17. Giraph(圖計算模型)
Apache Giraph是一個可伸縮的分布式迭代圖處理系統(tǒng), 基于Hadoop平臺,靈感來自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
最早出自雅虎。雅虎在開發(fā)Giraph時采用了Google工程師2010年發(fā)表的論文《Pregel:大規(guī)模圖表處理系統(tǒng)》中的原理。后來,雅虎將Giraph捐贈給Apache軟件基金會。
目前所有人都可以下載Giraph,它已經成為Apache軟件基金會的開源項目,并得到Facebook的支持,獲得多方面的改進。
18.GraphX(圖計算模型)
Spark GraphX最先是伯克利AMPLAB的一個分布式圖計算框架項目,目前整合在spark運行框架中,為其提供BSP大規(guī)模并行圖計算能力。
19. MLib(機器學習庫)
Spark MLlib是一個機器學習庫,它提供了各種各樣的算法,這些算法用來在集群上針對分類、回歸、聚類、協(xié)同過濾等。
20. Streaming(流計算模型)
Spark Streaming支持對流數(shù)據(jù)的實時處理,以微批的方式對實時數(shù)據(jù)進行計算
21. Kafka(分布式消息隊列)
Kafka是Linkedin于2010年12月份開源的消息系統(tǒng),它主要用于處理活躍的流式數(shù)據(jù)。
活躍的流式數(shù)據(jù)在web網站應用中非常常見,這些數(shù)據(jù)包括網站的pv、用戶訪問了什么內容,搜索了什么內容等。
這些數(shù)據(jù)通常以日志的形式記錄下來,然后每隔一段時間進行一次統(tǒng)計處理。
22. Phoenix(hbase sql接口)
Apache Phoenix 是HBase的SQL驅動,Phoenix 使得Hbase 支持通過JDBC的方式進行訪問,并將你的SQL查詢轉換成Hbase的掃描和相應的動作。
23. ranger(安全管理工具)
Apache ranger是一個hadoop集群權限框架,提供操作、監(jiān)控、管理復雜的數(shù)據(jù)權限,它提供一個集中的管理機制,管理基于yarn的hadoop生態(tài)圈的所有數(shù)據(jù)權限。
24. knox(hadoop安全網關)
Apache knox是一個訪問hadoop集群的restapi網關,它為所有rest訪問提供了一個簡單的訪問接口點,能完成3A認證(Authentication,Authorization,Auditing)和SSO(單點登錄)等
25. falcon(數(shù)據(jù)生命周期管理工具)
Apache Falcon 是一個面向Hadoop的、新的數(shù)據(jù)處理和管理平臺,設計用于數(shù)據(jù)移動、數(shù)據(jù)管道協(xié)調、生命周期管理和數(shù)據(jù)發(fā)現(xiàn)。它使終端用戶可以快速地將他們的數(shù)據(jù)及其相關的處理和管理任務“上載(onboard)”到Hadoop集群。
26.Ambari(安裝部署配置管理工具)
Apache Ambari 的作用來說,就是創(chuàng)建、管理、監(jiān)視 Hadoop 的集群,是為了讓 Hadoop 以及相關的大數(shù)據(jù)軟件更容易使用的一個web工具。
參考文獻:
Hadoop生態(tài)系統(tǒng)介紹 http://blog.csdn.net/qa962839575/article/details/44256769?ref=myread
大數(shù)據(jù)和Hadoop生態(tài)圈,Hadoop發(fā)行版和基于Hadoop的企業(yè)級應用 http://www.36dsj.com/archives/26942
Oozie介紹 http://blog.csdn.net/wf1982/article/details/7200663
統(tǒng)一資源管理與調度平臺(系統(tǒng))介紹 http://blog.csdn.net/meeasyhappy/article/details/8669688
Tachyon簡介http://blog.csdn.net/u014252240/article/details/41810849
Apache Tez:一個運行在YARN之上支持DAG作業(yè)的計算框架 http://segmentfault.com/a/1190000000458726
Giraph:基于Hadoop的開源圖形處理平臺 http://tech.it168.com/a2013/0821/1523/000001523700.shtml
Hadoop家族學習路線圖 http://blog.fens.me/hadoop-family-roadmap/
基于Spark的圖計算框架 GraphX 入門介紹 http://www.open-open.com/lib/view/open1420689305781.html
Apache Spark 入門簡介 http://blog.jobbole.com/89446/
Ambari——大數(shù)據(jù)平臺的搭建利器 http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html
消息系統(tǒng)Kafka介紹 http://dongxicheng.org/search-engine/kafka/
使用Apache Phoenix 實現(xiàn) SQL 操作HBase http://www.tuicool.com/articles/vu6jae
面向Hadoop的、新的數(shù)據(jù)處理和管理平臺:Apache Falcon http://www.open-open.com/lib/view/open1422533435767.html
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁題目:大數(shù)據(jù)技術Hadoop入門理論系列之一----hadoop生態(tài)圈介紹-創(chuàng)新互聯(lián)
本文路徑:http://aaarwkj.com/article40/idceo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、全網營銷推廣、ChatGPT、虛擬主機、網站維護、網站設計公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)