Hadoop生態(tài)系統(tǒng)

首先我們先了解一下Hadoop的起源。然后介紹一些關(guān)于Hadoop生態(tài)系統(tǒng)中的具體工具的使用方法痛阻。如:HDFS、MapReduce腮敌、Yarn阱当、Zookeeper、Hive糜工、HBase弊添、Oozie、Mahout啤斗、Pig表箭、Flume、Sqoop钮莲。

Hadoop的起源

Doug Cutting是Hadoop之父 免钻,起初他開創(chuàng)了一個開源軟件Lucene(用Java語言編寫,提供了全文檢索引擎的架構(gòu)崔拥,與Google類似)极舔,Lucene后來面臨與Google同樣的錯誤。于是链瓦,Doug Cutting學習并模仿Google解決這些問題的辦法拆魏,產(chǎn)生了一個Lucene的微縮版Nutch。

后來慈俯,Doug Cutting等人根據(jù)2003-2004年Google公開的部分GFS和Mapreduce思想的細節(jié)渤刃,利用業(yè)余時間實現(xiàn)了GFS和Mapreduce的機制,從而提高了Nutch的性能贴膘。由此Hadoop產(chǎn)生了卖子。

Hadoop于2005年秋天作為Lucene的子項目Nutch的一部分正式引入Apache基金會。2006年3月份刑峡,Map-Reduce和Nutch Distributed File System(NDFS)分別被納入Hadoop的項目中洋闽。

關(guān)于Hadoop名字的來源玄柠,是Doug Cutting兒子的玩具大象。

Hadoop是什么

Hadoop是一個開源框架诫舅,可編寫和運行分布式應用處理大規(guī)模數(shù)據(jù)羽利。 Hadoop框架的核心是HDFS和MapReduce。其中 HDFS 是分布式文件系統(tǒng)刊懈,MapReduce 是分布式數(shù)據(jù)處理模型和執(zhí)行環(huán)境这弧。

在一個寬泛而不斷變化的分布式計算領域,Hadoop憑借什么優(yōu)勢能脫穎而出呢虚汛?

1. 運行方便:Hadoop是運行在由一般商用機器構(gòu)成的大型集群上当宴。Hadoop在云計算服務層次中屬于PaaS(Platform-as-a- Service):平臺即服務。

2. 健壯性:Hadoop致力于在一般的商用硬件上運行泽疆,能夠從容的處理類似硬件失效這類的故障。

3. 可擴展性:Hadoop通過增加集群節(jié)點玲献,可以線性地擴展以處理更大的數(shù)據(jù)集殉疼。

4. 簡單:Hadoop允許用戶快速編寫高效的并行代碼。

Hadoop的生態(tài)系統(tǒng)

image.png
    1. Nutch捌年,互聯(lián)網(wǎng)數(shù)據(jù)及Nutch搜索引擎應用
    1. HDFS,Hadoop的分布式文件系統(tǒng)
    1. MapReduce,分布式計算框架
    1. Flume瓢娜、Scribe,Chukwa數(shù)據(jù)收集礼预,收集非結(jié)構(gòu)化數(shù)據(jù)的工具眠砾。
  • 7) Hiho、Sqoop,講關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)導入HDFS的工具
  • 8) Hive數(shù)據(jù)倉庫托酸,pig分析數(shù)據(jù)的工具
  • 10)Oozie作業(yè)流調(diào)度引擎
  • 11)Hue褒颈,Hadoop自己的監(jiān)控管理工具
  • 12)Avro 數(shù)據(jù)序列化工具
  • 13)mahout數(shù)據(jù)挖掘工具
  • 14)Hbase分布式的面向列的開源數(shù)據(jù)庫

Hadoop生態(tài)系統(tǒng)的特點

  • 源代碼開源
  • 社區(qū)活躍、參與者眾多
  • 涉及分布式存儲和計算的方方面面
  • 已得到企業(yè)界驗證

Hadoop生態(tài)系統(tǒng)的各組成部分詳解

上面的圖可能有些亂励堡,下面我們用一個簡易的Hadoop生態(tài)系統(tǒng)圖譜來描述Hadoop生態(tài)系統(tǒng)中出現(xiàn)的各種數(shù)據(jù)工具谷丸。

Hadoop1.0時代的生態(tài)系統(tǒng)如下:

image.png

Hadoop2.0時代的生態(tài)系統(tǒng)如下:

image.png

Hadoop的核心


image.png

由上圖可以看出Hadoop1.0與Hadoop2.0的區(qū)別。Hadoop1.0的核心由HDFS(Hadoop Distributed File System)和MapReduce(分布式計算框架)構(gòu)成应结。而在Hadoop2.0中增加了Yarn(Yet Another Resource Negotiator),來負責集群資源的統(tǒng)一管理和調(diào)度刨疼。


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


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

此處只是HDFS的概述揩慕,如果想了解HDFS詳情,請查看HDFS詳解這篇文章。

HDFS具有如下特點:

  1. 良好的擴展性
  2. 高容錯性
  3. 適合PB級以上海量數(shù)據(jù)的存儲

HDFS的基本原理

  • 將文件切分成等大的數(shù)據(jù)塊扮休,存儲到多臺機器上
  • 將數(shù)據(jù)切分迎卤、容錯、負載均衡等功能透明化
  • 可將HDFS看成容量巨大肛炮、具有高容錯性的磁盤

HDFS的應用場景

  • 海量數(shù)據(jù)的可靠性存儲
  • 數(shù)據(jù)歸檔

Yarn(資源管理系統(tǒng))


Yarn是Hadoop2.0新增的系統(tǒng)止吐,負責集群的資源管理和調(diào)度宝踪,使得多種計算框架可以運行在一個集群中。

此處只是Yarn的概述碍扔,如果想了解Yarn詳情,請查看Yarn詳解這篇文章瘩燥。

Yarn具有如下特點:

  1. 良好的擴展性、高可用性
  2. 對多種數(shù)據(jù)類型的應用程序進行統(tǒng)一管理和資源調(diào)度
  3. 自帶了多種用戶調(diào)度器不同,適合共享集群環(huán)境
image.png

MapReduce(分布式計算框架)


MapReduce源自于Google發(fā)表于2004年12月的MapReduce論文厉膀,也就是說,Hadoop MapReduce是Google MapReduce的克隆版二拐。

此處只是MapReduce的概述服鹅,如果想了解MapReduce詳情,請查看MapReduce詳解這篇文章。

MapReduce具有如下特點:

  1. 良好的擴展性
  2. 高容錯性
  3. 適合PB級以上海量數(shù)據(jù)的離線處理
image.png

Hive(基于MR的數(shù)據(jù)倉庫)


Hive由facebook開源百新,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計問題企软;是一種ETL(Extraction-Transformation-Loading)工具。它也是構(gòu)建在Hadoop之上的數(shù)據(jù)倉庫饭望;數(shù)據(jù)計算使用MR,數(shù)據(jù)存儲使用HDFS仗哨。

Hive定義了一種類似SQL查詢語言的HiveQL查詢語言,除了不支持更新铅辞、索引和實物厌漂,幾乎SQL的其他特征都能支持。它通常用于離線數(shù)據(jù)處理(采用MapReduce);我們可以認為Hive的HiveQL語言是MapReduce語言的翻譯器斟珊,把MapReduce程序簡化為HiveQL語言苇倡。但有些復雜的MapReduce程序是無法用HiveQL來描述的。

Hive提供shell囤踩、JDBC/ODBC旨椒、Thrift、Web等接口堵漱。

此處只是Hive的概述钩乍,如果想了解Hive詳情,請查看Hive詳解這篇文章。

Hive應用場景

  1. 日志分析:統(tǒng)計一個網(wǎng)站一個時間段內(nèi)的pv怔锌、uv 寥粹;比如百度。淘寶等互聯(lián)網(wǎng)公司使用hive進行日志分析
  2. 多維度數(shù)據(jù)分析
  3. 海量結(jié)構(gòu)化數(shù)據(jù)離線分析
  4. 低成本進行數(shù)據(jù)分析(不直接編寫MR)
image.jpeg

Pig(數(shù)據(jù)倉庫)


Pig由yahoo!開源埃元,設計動機是提供一種基于MapReduce的ad-hoc數(shù)據(jù)分析工具涝涤。它通常用于進行離線分析。

Pig是構(gòu)建在Hadoop之上的數(shù)據(jù)倉庫岛杀,定義了一種類似于SQL的數(shù)據(jù)流語言–Pig Latin,Pig Latin可以完成排序阔拳、過濾、求和、關(guān)聯(lián)等操作糊肠,可以支持自定義函數(shù)辨宠。Pig自動把Pig Latin映射為MapReduce作業(yè),上傳到集群運行货裹,減少用戶編寫Java程序的苦惱嗤形。

Pig有三種運行方式:Grunt shell阱高、腳本方式赴背、嵌入式。

此處只是Pig的概述桦他,如果想了解Pig詳情,請查看Pig詳解這篇文章搔预。

Pig與Hive的比較

image.png

Mahout(數(shù)據(jù)挖掘庫)


Mahout是基于Hadoop的機器學習和數(shù)據(jù)挖掘的分布式計算框架霹期。它實現(xiàn)了三大算法:推薦、聚類拯田、分類历造。

image.png

HBase(分布式數(shù)據(jù)庫)


HBase源自Google發(fā)表于2006年11月的Bigtable論文。也就是說船庇,HBase是Google Bigtable的克隆版帕膜。

HBase可以使用shell、web溢十、api等多種方式訪問。它是NoSQL的典型代表產(chǎn)品达吞。

此處只是HBase的概述张弛,如果想了解HBase詳情,請查看HBase詳解這篇文章。

HBase的特點

  1. 高可靠性
  2. 高性能
  3. 面向列
  4. 良好的擴展性

HBase的數(shù)據(jù)模型

image.png

下面簡要介紹一下:

  • Table(表):類似于傳統(tǒng)數(shù)據(jù)庫中的表
  • Column Family(列簇):Table在水平方向有一個或者多個Column Family組成酪劫;一個Column Family 中可以由任意多個Column組成吞鸭。
  • Row Key(行健):Table的主鍵;Table中的記錄按照Row Key排序覆糟。
  • Timestamp(時間戳):每一行數(shù)據(jù)均對應一個時間戳刻剥;也可以當做版本號。

Zookeeper(分布式協(xié)作服務)


Zookeeper源自Google發(fā)表于2006年11月的Chubby論文滩字,也就是說Zookeeper是Chubby的克隆版造虏。

Zookeeper解決分布式環(huán)境下數(shù)據(jù)管理問題:

  1. 統(tǒng)一命名
  2. 狀態(tài)同步
  3. 集群管理
  4. 配置同步

Zookeeper的應用

  • HDFS
  • Yarn
  • Storm
  • HBase
  • Flume
  • Dubbo
  • Metaq

Sqoop(數(shù)據(jù)同步工具)


Sqoop是連接Hadoop與傳統(tǒng)數(shù)據(jù)庫之間的橋梁,它支持多種數(shù)據(jù)庫麦箍,包括MySQL漓藕、DB2等;插拔式挟裂,用戶可以根據(jù)需要支持新的數(shù)據(jù)庫享钞。

Sqoop實質(zhì)上是一個MapReduce程序,充分利用MR并行的特點,充分利用MR的容錯性诀蓉。

image.png

此處只是Sqoop的概述栗竖,如果想了解Sqoop詳情,請查看Sqoop詳解這篇文章暑脆。


Flume(日志收集工具)


Flume是Cloudera開源的日志收集系統(tǒng)。

Flume的特點

  1. 分布式
  2. 高可靠性
  3. 高容錯性
  4. 易于定制與擴展

Flume OG與Flume NG的對比

  • Flume OG:Flume original generation 即Flume 0.9.x版本狐肢,它由agent添吗、collector、master等組件構(gòu)成处坪。
image.png
  • Flume NG:Flume next generation 根资,即Flume 1.x版本,它由Agent同窘、Client等組件構(gòu)成玄帕。一個Agent包含Source、Channel想邦、Sink和其他組件裤纹。
image.png
image.png

Oozie(作業(yè)流調(diào)度系統(tǒng))


目前計算框架和作業(yè)類型種類繁多:如MapReduce、Stream丧没、HQL鹰椒、Pig等。這些作業(yè)之間存在依賴關(guān)系呕童,周期性作業(yè)漆际,定時執(zhí)行的作業(yè),作業(yè)執(zhí)行狀態(tài)監(jiān)控與報警等夺饲。如何對這些框架和作業(yè)進行統(tǒng)一管理和調(diào)度奸汇?

解決方案有多種:

  1. Linux Crontab
  2. 自己設計調(diào)度系統(tǒng)(淘寶等公司)
  3. 直接使用開源系統(tǒng)(Oozie)
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市往声,隨后出現(xiàn)的幾起案子擂找,更是在濱河造成了極大的恐慌,老刑警劉巖浩销,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贯涎,死亡現(xiàn)場離奇詭異,居然都是意外死亡慢洋,警方通過查閱死者的電腦和手機塘雳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來普筹,“玉大人粉捻,你說我怎么就攤上這事“呶撸” “怎么了肩刃?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我盈包,道長沸呐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任呢燥,我火速辦了婚禮崭添,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叛氨。我一直安慰自己呼渣,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布寞埠。 她就那樣靜靜地躺著屁置,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仁连。 梳的紋絲不亂的頭發(fā)上蓝角,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音饭冬,去河邊找鬼使鹅。 笑死,一個胖子當著我的面吹牛昌抠,可吹牛的內(nèi)容都是我干的患朱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼炊苫,長吁一口氣:“原來是場噩夢啊……” “哼裁厅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劝评,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎倦淀,沒想到半個月后蒋畜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡撞叽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年姻成,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愿棋。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡科展,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出糠雨,到底是詐尸還是另有隱情才睹,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站琅攘,受9級特大地震影響垮庐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坞琴,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一哨查、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剧辐,春花似錦寒亥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至羞酗,卻和暖如春腐宋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背檀轨。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工胸竞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人参萄。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓卫枝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親讹挎。 傳聞我的和親對象是個殘疾皇子校赤,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容