快速認(rèn)識(shí)Hadoop生態(tài)系統(tǒng)

就目前來(lái)說(shuō)Hadoop已經(jīng)成為處理大數(shù)據(jù)的問(wèn)題的必備的組件把鉴,許多的大廠都已經(jīng)在使用Hadoop軟件棧處理自己的問(wèn)題归园,那為什么Hadoop技術(shù)棧這么流行?

其實(shí)不外乎幾個(gè)原因:首先Hadoop是完全開(kāi)源的廊遍,雖然Oracle也可以搭建集群但是畢竟Oracle不是開(kāi)源的踪旷,其次是當(dāng)數(shù)據(jù)量大的時(shí)候Oracle的計(jì)算也會(huì)變得很慢。其次是Hadoop的社區(qū)比較活躍衙解,這樣解決問(wèn)題的成本就會(huì)很低阳柔,因?yàn)楹芸赡芤恍﹩?wèn)題早已經(jīng)被別人解決了。最后是Hadoop已經(jīng)被很多企業(yè)投入使用蚓峦,有了實(shí)戰(zhàn)的經(jīng)驗(yàn)舌剂,同時(shí)Hadoop有很廣泛的大數(shù)據(jù)解決面。

Hadoop1.0和Hadoop2.0

要學(xué)習(xí)hadoop首先就要認(rèn)識(shí)Hadoop的版本問(wèn)題暑椰,因?yàn)榫W(wǎng)上很多資料都是很混淆的霍转,有的介紹的其實(shí)是Hadoop1.0的問(wèn)題,有的資料都搞混Hadoop1.0與Hadoop2.0,這對(duì)學(xué)習(xí)很不利一汽。


360截圖173705179310989.png
首先我們應(yīng)該知道Hadoop1.0最大的問(wèn)題是單點(diǎn)故障問(wèn)題

Hadoop2.0就是針對(duì)Hadoop1.0的問(wèn)題進(jìn)行解決與優(yōu)化谴忧。根據(jù)上圖我們知道,Hadoop1.0只支持單一的計(jì)算模型MapReduce,Hadoop2.0加入Yarn資源調(diào)度器角虫,可以支持多種類(lèi)型的計(jì)算模型沾谓,Yarn同時(shí)可以給不同的計(jì)算任務(wù)進(jìn)行計(jì)算資源的分配。

Hadoop2.0

  • HDFS 主要提供了分布式存儲(chǔ)系統(tǒng)戳鹅,供了高可靠性均驶、高擴(kuò)展性和高吞吐率的數(shù)據(jù)存儲(chǔ)服務(wù),同時(shí)基于對(duì)數(shù)據(jù)的操作基本屬于順序讀取的流式讀取枫虏,并且Hadoop可以承載草大文件的存儲(chǔ)妇穴。
  • Yarn 主要負(fù)責(zé)集群的資源的管理,同時(shí)也可以進(jìn)行資源的分配隶债。
  • Mapreduce分布式計(jì)算框架,具有易于編程腾它、高容錯(cuò)性和高擴(kuò)展性等優(yōu)點(diǎn).

HDFS

360截圖17290506114124152.png

HDFS的基本原理,就是將大文件切分為同樣大小的數(shù)據(jù)塊(128MB),進(jìn)行冗余(3份)存儲(chǔ)在不同的機(jī)器上死讹。同時(shí)調(diào)控集群的負(fù)載均衡瞒滴。

如上圖所示,在Hadoop2.0中Namenode節(jié)點(diǎn)有兩個(gè)為了解決但節(jié)點(diǎn)故障問(wèn)題赞警,不過(guò)現(xiàn)在的備份節(jié)點(diǎn)是屬于靜態(tài)綁定妓忍,如果兩個(gè)節(jié)點(diǎn)都故障,就不得使用冷啟動(dòng)方式啟動(dòng)愧旦。

Yarn

360截圖17571120377276.png

了解Hadoop1.0的一定知道其是通過(guò)JobTracker和TaskTracker進(jìn)行任務(wù)與資源的分配世剖,但是也存在單節(jié)點(diǎn)故障的問(wèn)題。Yarn目前很復(fù)雜笤虫,但目前也符合主/從的模式旁瘫,由上圖知祖凫,ResourceManager管理著NodeManage從節(jié)點(diǎn)。具有良好的擴(kuò)展性和高可用性酬凳。

MapReduce

20170730014216035.png

上圖是MapReduce計(jì)算的過(guò)程蝙场,主要分為input,splitting,Mapping,shuffing,Reducing,output五個(gè)過(guò)程。但是其他復(fù)雜過(guò)程都被封裝了粱年,我們只需要進(jìn)行編寫(xiě)Mapping和Reducing的過(guò)程售滤。

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

360截圖17900104136343.png

Hive

最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計(jì)問(wèn)題,其是構(gòu)建在HDFS數(shù)據(jù)倉(cāng)庫(kù)上的,其底層就是MapReduce計(jì)算實(shí)現(xiàn)台诗。Hive定義了一種HiveQL語(yǔ)言完箩,可以使Hive通過(guò)簡(jiǎn)單的類(lèi)SQL語(yǔ)句實(shí)現(xiàn)MapReduce程序。

SELECT word, COUNT(*) FROM doc  LATERAL VIEW explode(split(text, ' ')) lTable 
as word  GROUP BY word; 

pig

pig與hive類(lèi)似拉队,但是pig不管數(shù)據(jù)是不是關(guān)系型的弊知,有無(wú)元數(shù)據(jù),是否嵌套都可以進(jìn)行操作粱快,而且pig也可以在其他平臺(tái)上進(jìn)行使用秩彤。
定義了一種數(shù)據(jù)流語(yǔ)言——Pig Latin

 ① 加載數(shù)據(jù) input = load ‘/input/data’ as (line:chararray); 
 ② 將字符串分割成單詞 words = foreach input generate                      flatten(TOKENIZE(line)) as word; 
 ③ 對(duì)單詞進(jìn)行分組 grpd = group words by word; 
 ④ 統(tǒng)計(jì)每組中單詞數(shù)量 cntd = foreach grpd generate group,               COUNT(words); 
 ⑤ 打印結(jié)果 dump cntd; 

Mahout

基于Hadoop的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的分布 式計(jì)算框架
mahout主要包含以下5部分

頻繁挖掘模式:挖掘數(shù)據(jù)中頻繁出現(xiàn)的項(xiàng)集。

聚類(lèi):將諸如文本事哭、文檔之類(lèi)的數(shù)據(jù)分成局部相關(guān)的組漫雷。

分類(lèi):利用已經(jīng)存在的分類(lèi)文檔訓(xùn)練分類(lèi)器,對(duì)未分類(lèi)的文檔進(jìn)行分類(lèi)鳍咱。

推薦引擎(協(xié)同過(guò)濾):獲得用戶(hù)的行為并從中發(fā)現(xiàn)用戶(hù)可能喜歡的事物降盹。

頻繁子項(xiàng)挖掘:利用一個(gè)項(xiàng)集(查詢(xún)記錄或購(gòu)物記錄)去識(shí)別經(jīng)常一起出現(xiàn)的項(xiàng)目。

Hbase

4951489-8dee031e87bde745.jpg

Table:表:類(lèi)似于傳統(tǒng)傳統(tǒng)數(shù)據(jù)庫(kù)中的表

Column Family:列簇:Table在水平方向有一個(gè)或者多個(gè)

Column Family 組成
一個(gè)Column Family中可以由任意多個(gè)Column組 成

Row Key: 行鍵 ?Table的主鍵 ?Table中的記錄按照Row Key排序 ?Timestamp: 時(shí)間戳

每行數(shù)據(jù)均對(duì)應(yīng)一個(gè)時(shí)間戳 ?版本號(hào)
Client:

包含訪問(wèn)HBase的接口谤辜,并維護(hù)cache來(lái)加快對(duì)HBase的訪問(wèn)蓄坏。說(shuō)白了,就是用來(lái)訪問(wèn)HBase的客戶(hù)端丑念。

HMaster:

這個(gè)東西是HBase的主節(jié)點(diǎn)涡戳,用來(lái)協(xié)調(diào)Client端應(yīng)用程序和HRegionServer的關(guān)系,管理分配HRegion給HRegionserver服務(wù)器脯倚。

HRegionServer:

Hbase的從節(jié)點(diǎn)渔彰,管理當(dāng)前自己這臺(tái)服務(wù)器上面的HRegion,HRegion是Hbase表的基礎(chǔ)單元組建挠将,存儲(chǔ)了分布式的表胳岂。HRegionserver負(fù)責(zé)切分在運(yùn)行過(guò)程中變得過(guò)大的HRegion编整。

HRegion:

一個(gè)Table可以有多個(gè)HRegion舔稀,HBase使用rowKey將表水平切割成多個(gè)HRegion,每個(gè)HRegion都紀(jì)錄了它的StartKey和EndKey(第一個(gè)HRegion的StartKey為空掌测,最后一個(gè)HRegion的EndKey為空)内贮,由于RowKey是排序的产园,因而Client可以通過(guò)HMaster快速的定位每個(gè)RowKey在哪個(gè)HRegion中。HRegion由HMaster分配到相應(yīng)的HRegionServer中夜郁,然后由HRegionServer負(fù)責(zé)HRegion的啟動(dòng)和管理什燕,和Client的通信,負(fù)責(zé)數(shù)據(jù)的讀(使用HDFS)竞端。每個(gè)HRegionServer可以同時(shí)管理1000個(gè)左右的HRegion屎即,出處請(qǐng)參看論文:BigTable(5 Implementation節(jié)):Each tablet server manages a set of tablets(typically we have somewhere between ten to a thousand tablets per tablet server))。

MemStore:

它是一個(gè)寫(xiě)緩存事富,數(shù)據(jù)先WAL[write ahead log](也就是HLog它是一個(gè)二進(jìn)制文件技俐,所有寫(xiě)操作都會(huì)先保證將數(shù)據(jù)寫(xiě)入這個(gè)Log文件后,才會(huì)真正更新MemStore统台,最后寫(xiě)入HFile中)雕擂,在寫(xiě)入MemStore后,由MemStore根據(jù)一定的算法將數(shù)據(jù)Flush到底層HDFS文件中(HFile)贱勃,一般而言井赌,對(duì)于每個(gè)HRegion中的每個(gè)Column Family來(lái)說(shuō),有一個(gè)自己的MemStore贵扰。

StoreFile:

1個(gè)HStore仇穗,由一個(gè)MemStore和0~N個(gè)StoreFile組成。

HFile:

用于存儲(chǔ)HBase的數(shù)據(jù)(Cell/KeyValue)戚绕,在HFile中的數(shù)據(jù)是按RowKey仪缸、Column Family、Column排序列肢,對(duì)于相同的數(shù)據(jù)單元恰画,排序則按照時(shí)間戳(Timestamp)倒敘排列。

Zookeeper:

HBase內(nèi)置有zookeeper瓷马,但一般我們會(huì)有其他的Zookeeper集群來(lái)監(jiān)管master和regionserver拴还,Zookeeper通過(guò)選舉,保證任何時(shí)候欧聘,集群中只有一個(gè)活躍的HMaster片林,HMaster與HRegionServer 啟動(dòng)時(shí)會(huì)向ZooKeeper注冊(cè),存儲(chǔ)所有HRegion的尋址入口怀骤,實(shí)時(shí)監(jiān)控HRegionserver的上線和下線信息费封。并實(shí)時(shí)通知給HMaster,存儲(chǔ)HBase的schema和table元數(shù)據(jù)蒋伦,默認(rèn)情況下弓摘,HBase 管理ZooKeeper 實(shí)例,Zookeeper的引入使得HMaster不再是單點(diǎn)故障痕届。一般情況下會(huì)啟動(dòng)兩個(gè)HMaster韧献,非Active的HMaster會(huì)定期的和Active HMaster通信以獲取其最新?tīng)顟B(tài)末患,從而保證它是實(shí)時(shí)更新的,因而如果啟動(dòng)了多個(gè)HMaster反而增加了Active HMaster的負(fù)擔(dān)锤窑。

Zookeeper

Zookeeper本質(zhì)上是一個(gè)MapReduce程序璧针。


20141108213346_932.png

連接Hadoop與傳統(tǒng)數(shù)據(jù)庫(kù)之間的橋梁 支持多種數(shù)據(jù)庫(kù),包括MySQL渊啰、DB2等 插拔式探橱,用戶(hù)可根據(jù)需要支持新的數(shù)據(jù)庫(kù) 本質(zhì)上是一個(gè)MapReduce程序 充分利用了MR分布式并行的特點(diǎn),充分利用MR容錯(cuò)性

Oozie

如何對(duì)這些框架和作業(yè)進(jìn)行統(tǒng)一管理和調(diào)度?
不同作業(yè)之間存在依賴(lài)關(guān)系(DAG)绘证;

周期性作業(yè)

定時(shí)執(zhí)行的作業(yè)

作業(yè)執(zhí)行狀態(tài)監(jiān)控與報(bào)警(發(fā)郵件走搁、短信等)

360截圖17290513287528.png

開(kāi)源版本

Apache Hadoop

CDH

HDP

建議選擇公司發(fā)行版,比如CDH或HDP

不用考慮不同軟件間的版本匹配

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迈窟,一起剝皮案震驚了整個(gè)濱河市私植,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌车酣,老刑警劉巖曲稼,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異湖员,居然都是意外死亡贫悄,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)娘摔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)窄坦,“玉大人,你說(shuō)我怎么就攤上這事凳寺⊙冀颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵肠缨,是天一觀的道長(zhǎng)逆趋。 經(jīng)常有香客問(wèn)我,道長(zhǎng)晒奕,這世上最難降的妖魔是什么闻书? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮脑慧,結(jié)果婚禮上魄眉,老公的妹妹穿的比我還像新娘。我一直安慰自己闷袒,他們只是感情好坑律,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著霜运,像睡著了一般脾歇。 火紅的嫁衣襯著肌膚如雪蒋腮。 梳的紋絲不亂的頭發(fā)上淘捡,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天藕各,我揣著相機(jī)與錄音,去河邊找鬼焦除。 笑死激况,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的膘魄。 我是一名探鬼主播乌逐,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼创葡!你這毒婦竟也來(lái)了浙踢?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灿渴,失蹤者是張志新(化名)和其女友劉穎洛波,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體骚露,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蹬挤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棘幸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焰扳。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖误续,靈堂內(nèi)的尸體忽然破棺而出吨悍,到底是詐尸還是另有隱情,我是刑警寧澤蹋嵌,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布畜份,位于F島的核電站,受9級(jí)特大地震影響欣尼,放射性物質(zhì)發(fā)生泄漏爆雹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一愕鼓、第九天 我趴在偏房一處隱蔽的房頂上張望钙态。 院中可真熱鬧,春花似錦菇晃、人聲如沸册倒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驻子。三九已至灿意,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間崇呵,已是汗流浹背缤剧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留域慷,地道東北人荒辕。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像犹褒,于是被迫代替她去往敵國(guó)和親抵窒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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

  • 簡(jiǎn)介 HBase是高可靠性,高性能,面向列温学,可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Serve...
    九世的貓閱讀 2,197評(píng)論 1 6
  • 本文首先簡(jiǎn)單介紹了HBase,然后重點(diǎn)講述了HBase的高并發(fā)和實(shí)時(shí)處理數(shù)據(jù) 掉房、HBase數(shù)據(jù)模型、HBase物理...
    達(dá)微閱讀 2,736評(píng)論 1 13
  • HBase工作原理學(xué)習(xí) 1 HBase簡(jiǎn)介 HBase是一個(gè)高可靠性朦拖、高性能圃阳、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng)璧帝,利用...
    miss幸運(yùn)閱讀 772評(píng)論 0 11
  • I pretended not to notice him in the street while I saw N...
    化真閱讀 120評(píng)論 0 1
  • 我們都知道捍岳,孩子的成長(zhǎng)需要夢(mèng)想 今天等人的時(shí)間,看了一個(gè)小故事睬隶,故事說(shuō)—— 一個(gè)電視節(jié)目做了一個(gè)實(shí)驗(yàn):主持人在黑板...
    小賈教我家庭教育觀閱讀 238評(píng)論 2 3