溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

hadoop生態(tài)圈的詳解

發(fā)布時(shí)間:2020-06-10 03:55:47 來源:網(wǎng)絡(luò) 閱讀:8131 作者:cpaqyx 欄目:關(guān)系型數(shù)據(jù)庫(kù)

學(xué)習(xí)和使用hadoop有一年了,這里主要分享一下對(duì)hadoop整體上的理解,分門別類的介紹一下相關(guān)組件,最后提供了建議的學(xué)習(xí)路線,希望對(duì)hadoop的初學(xué)者有參考作用。

 

1.      Hadoop核心件組有哪些? 廣義hadoop指什么?

  • 核心組件有:Hdfs、YarnMapReduce;

  • 廣義上指一個(gè)生態(tài)圈,泛指大數(shù)據(jù)技術(shù)相關(guān)的開源組件或產(chǎn)品,如hdfs、yarnhbase、hivespark、pig、zookeeper、kafka、flume、phoenixsqoop。

 

2.      Sparkhadoop之間有什么聯(lián)系

  • Spark也是一個(gè)生態(tài)圈,發(fā)展非很快,在計(jì)算方面比mapreduce要快很多倍,供了一個(gè)簡(jiǎn)單而豐富的編程模型,支持多種應(yīng)用,包括ETL、機(jī)器學(xué)習(xí)、數(shù)據(jù)流處理、圖形計(jì)算;

  • HadoopSpark在某些方面有重疊,但組件之間都可以很好的協(xié)同作戰(zhàn)。

 

3.      分門別類介紹其中詳細(xì)組件

為了方便理解以下按照功能進(jìn)行了分類,并且把較為流行的排在了前面介紹,列表如下:

分類

相關(guān)產(chǎn)品

文件系統(tǒng)

        HDFS,目前大量采用的分布式文件系統(tǒng),是整個(gè)大數(shù)據(jù)應(yīng)用場(chǎng)景的基礎(chǔ)通用文件存儲(chǔ)組件

        S3, Simple Storage Service簡(jiǎn)單存儲(chǔ)服務(wù),更好的可擴(kuò)展性,內(nèi)置的持久性,以及較低的價(jià)格

資源調(diào)度

        YARN,分布式資源調(diào)度,可以接收計(jì)算的任務(wù)把它分配到集群各節(jié)點(diǎn)處理,相當(dāng)于大數(shù)據(jù)操作系統(tǒng),通用性好,生態(tài)支持好;

        Mesos,同YARN類似,偏向于資源的抽象和管理

計(jì)算框架

        Spark序列,有流計(jì)算、圖計(jì)算、機(jī)器學(xué)習(xí);

        Flink,支持計(jì)算數(shù)據(jù)不斷變化,即增量計(jì)算;

        Storm,專注于流式計(jì)算,功能強(qiáng)大;

        Mapreduce, 分布式計(jì)算基本計(jì)算框架,編程難度高,執(zhí)行效率低

數(shù)據(jù)庫(kù)

        Hbase,一種NoSQL列簇?cái)?shù)據(jù)庫(kù),支持?jǐn)?shù)十億行數(shù)百萬列大型數(shù)據(jù)儲(chǔ)存和訪問,尤其是寫數(shù)據(jù)的性能非常好,數(shù)據(jù)讀取實(shí)時(shí)性較好,提供一套API,不支持SQL操作,數(shù)據(jù)存儲(chǔ)采用HDFS;

        Cassandra,對(duì)大型表格和 Dynamo支持得最好;

        Redis,運(yùn)行異???,還可應(yīng)用于分布式緩存場(chǎng)景

SQL支持

        Spark SQL,由Shark、Hive發(fā)展而來的,以SQL方式訪問數(shù)據(jù)源(如hdfs、hbase、S3redis甚至關(guān)系統(tǒng)數(shù)據(jù)庫(kù)等,下同);

        Phoenix,一套專注于SQL方式訪問hbaseJDBC驅(qū)動(dòng),支持絕大部分SQL語法,支持二級(jí)索引,支持事務(wù),低延時(shí);

        Hive,通過HQL(類似SQL)來統(tǒng)計(jì)分析生成查詢結(jié)果,通過解析HQL生成可以Mapreduce上執(zhí)行的任務(wù),典型的應(yīng)用場(chǎng)景是與hbase集成;

        其它:impala、pig等,都實(shí)現(xiàn)了類似的功能,解決了直接寫map/reduce分析數(shù)據(jù)的復(fù)雜性,降低了數(shù)據(jù)分析工作者或開發(fā)人員使用大數(shù)據(jù)的門檻

其它工具

        分布式協(xié)作zookeeper,可以理解為一個(gè)小型高性能的數(shù)據(jù)庫(kù),為生態(tài)圈中與很多組件提供發(fā)布訂閱的功能,還可以監(jiān)測(cè)節(jié)點(diǎn)是否失效(心跳檢測(cè)),如HBaseKafka中利用zookeeper存放了主從節(jié)點(diǎn)信息;

        Kafka, 是一種分布式的,基于發(fā)布/訂閱的消息系統(tǒng),類似于消息對(duì)列的功能,可以接收生產(chǎn)者(如webservice、文件、hdfshbase等)的數(shù)據(jù),本身可以緩存起來,然后可以發(fā)送給消費(fèi)者(同上),起到緩沖和適配的作;

        Flume,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),主要作用是數(shù)據(jù)的收集和傳輸,也支持非常多的輸入輸出數(shù)據(jù)源;

        Sqoop,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(kù)(mysql、postgresql...)間進(jìn)行數(shù)據(jù)的傳遞,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如 MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到HadoopHDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫(kù)中

 

4.      典型的組合使用場(chǎng)景

Hadoop、Spark生態(tài)圈的組件是相互配合使用的,每個(gè)組件都有自己“用武之地”,組合起來完成即可以滿足各種系統(tǒng)業(yè)務(wù)需求,下面列舉兩個(gè)例子:

1)數(shù)據(jù)采集、存儲(chǔ)、分析場(chǎng)景

該場(chǎng)景下完成了整個(gè)數(shù)據(jù)的采集、存儲(chǔ)、分析,并輸出結(jié)果,組件搭配如下:

Flume + kafka(zookeeper)+ Hdfs + Spark/Storm/Hive + Hbase (ZookeeperHdfs) /Redis

說明如下:

  • Flume用來從種渠道(如http、exec、文件、kafka , …)收集數(shù)據(jù),并發(fā)送到kaffka(當(dāng)然也可以存放到hdfshbase、file、…)

  • Kafka可以緩存數(shù)據(jù),與flume一樣也支持各種協(xié)議的輸入和輸出,由于kafka需要zookeeper來完成負(fù)載均衡HA,所以需要zookeeper來支持

  • 開始計(jì)算,這里有三種選擇,Spark/Storm/Hive,各有優(yōu)勢(shì),相對(duì)Hive目前仍使用廣泛,該技術(shù)出現(xiàn)的較早;Storm專注于流式處理,延遲非常低; Spark最有前景的計(jì)算工具;不管用什么,最終都是對(duì)數(shù)據(jù)的清理、統(tǒng)計(jì),把得到的結(jié)果輸出

  • 展示結(jié)果數(shù)據(jù)存儲(chǔ),可以使用Hbase kafka(zookeeper) /Redismysql等,看使用場(chǎng)景(數(shù)據(jù)量大小等因素),由于處理之后的結(jié)果數(shù)據(jù)一般比較少可以直接放到Redis,然后就可以采用常規(guī)的技術(shù)展示出報(bào)表或其它消費(fèi)方式使用這些計(jì)算后的結(jié)果數(shù)據(jù)

 

2)數(shù)據(jù)存儲(chǔ)和實(shí)時(shí)訪問

這種場(chǎng)景非常類似常規(guī)應(yīng)用開發(fā)場(chǎng)景,即通過javaJDBC來訪問大數(shù)據(jù)集群,組件搭配:

Jdbc + Solr + Phoenix/Spark sql + Hbase kafka(zookeeper) + Hdfs

說明如下:

  • Jdbc是通用的java操作數(shù)據(jù)庫(kù)的方式,使用的是sql語句

  • Solr為全文檢索,完成站點(diǎn)分詞搜索功能

  • Phoenix/Spark sql方便以jdbc方式訪問Hbase數(shù)據(jù)庫(kù)

  • Hdfs最終完成數(shù)據(jù)的物理存儲(chǔ)

5.      建議的學(xué)習(xí)線路

僅憑個(gè)人經(jīng)驗(yàn),大概的分了三個(gè)階段,如下:

hadoop生態(tài)圈的詳解


打個(gè)廣告,最近錄了一門課程,大部分是免費(fèi)的,忙我湊湊人氣哦!請(qǐng)點(diǎn)擊 HBase 設(shè)計(jì)和編程開發(fā)視頻課程


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI