一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建(有彩蛋)

 林九十七 2018-06-16

講師介紹

基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建(有彩蛋)

鄭治明

ThoughtWorks系統(tǒng)架構(gòu)師

擔(dān)任多年系統(tǒng)架構(gòu)師工作,目前在NoSQL、微服務(wù)、大數(shù)據(jù)及前端等多個(gè)技術(shù)方向都有架構(gòu)實(shí)踐。現(xiàn)任ThoughtWorks高級(jí)咨詢(xún)師。

企業(yè)發(fā)展到一定規(guī)模都會(huì)搭建單獨(dú)的BI平臺(tái)來(lái)做數(shù)據(jù)分析,即OLAP(聯(lián)機(jī)分析處理),一般都是基于數(shù)據(jù)庫(kù)技術(shù)來(lái)構(gòu)建,基本都是單機(jī)產(chǎn)品。除了業(yè)務(wù)數(shù)據(jù)的相關(guān)分析外,互聯(lián)網(wǎng)企業(yè)還會(huì)對(duì)用戶(hù)行為進(jìn)行分析,進(jìn)一步挖掘潛在價(jià)值,這時(shí)數(shù)據(jù)就會(huì)膨脹得很厲害,一天的數(shù)據(jù)量可能會(huì)成千萬(wàn)或上億,對(duì)基于數(shù)據(jù)庫(kù)的傳統(tǒng)數(shù)據(jù)分析平臺(tái)的數(shù)據(jù)存儲(chǔ)和分析計(jì)算帶來(lái)了很大挑戰(zhàn)。

為了應(yīng)對(duì)隨著數(shù)據(jù)量的增長(zhǎng)、數(shù)據(jù)處理性能的可擴(kuò)展性,許多企業(yè)紛紛轉(zhuǎn)向Hadoop平臺(tái)來(lái)搭建數(shù)據(jù)分析平臺(tái)。Hadoop平臺(tái)具有分布式存儲(chǔ)及并行計(jì)算的特性,因此可輕松擴(kuò)展存儲(chǔ)結(jié)點(diǎn)和計(jì)算結(jié)點(diǎn),解決數(shù)據(jù)增長(zhǎng)帶來(lái)的性能瓶頸。

隨著越來(lái)越多的企業(yè)開(kāi)始使用Hadoop平臺(tái),也為Hadoop平臺(tái)引入了許多的技術(shù),如Hive、Spark SQL、Kafka等,豐富的組件使得用Hadoop構(gòu)建數(shù)據(jù)分析平臺(tái)代替?zhèn)鹘y(tǒng)數(shù)據(jù)分析平臺(tái)成為可能。

一、數(shù)據(jù)分析平臺(tái)架構(gòu)原理

基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建(有彩蛋)

從概念上講,我們可以把數(shù)據(jù)分析平臺(tái)分為接入層(Landing)、整合層(Integration)、表現(xiàn)層(Persentation)、語(yǔ)義層(Semantic)、終端用戶(hù)應(yīng)用(End-user applications)、元數(shù)據(jù)(Metadata)。基于Hadoop和數(shù)據(jù)庫(kù)的分析平臺(tái)基本概念和邏輯架構(gòu)是通用的,只是技術(shù)選型的不同:

  • 接入層(Landing):以和源系統(tǒng)相同的結(jié)構(gòu)暫存原始數(shù)據(jù),有時(shí)被稱(chēng)為“貼源層”或ODS;

  • 整合層(Integration):持久存儲(chǔ)整合后的企業(yè)數(shù)據(jù),針對(duì)企業(yè)信息實(shí)體和業(yè)務(wù)事件建模,代表組織的“唯一真相來(lái)源”,有時(shí)被稱(chēng)為“數(shù)據(jù)倉(cāng)庫(kù)”;

  • 表現(xiàn)層(Presentation):為滿(mǎn)足最終用戶(hù)的需求提供可消費(fèi)的數(shù)據(jù),針對(duì)商業(yè)智能和查詢(xún)性能建模,有時(shí)被稱(chēng)為“數(shù)據(jù)集市”;

  • 語(yǔ)義層(Semantic):提供數(shù)據(jù)的呈現(xiàn)形式和訪問(wèn)控制,例如某種報(bào)表工具;

  • 終端用戶(hù)應(yīng)用(End-user applications):使用語(yǔ)義層的工具,將表現(xiàn)層數(shù)據(jù)最終呈現(xiàn)給用戶(hù),包括儀表板、報(bào)表、圖表等多種形式;

  • 元數(shù)據(jù)(Metadata):記錄各層數(shù)據(jù)項(xiàng)的定義(Definitions)、血緣(Genealogy)、處理過(guò)程(Processing)。

來(lái)自不同數(shù)據(jù)源的“生”數(shù)據(jù)(接入層),和經(jīng)過(guò)中間處理之后得到的整合層、表現(xiàn)層的數(shù)據(jù)模型,都會(huì)存儲(chǔ)在數(shù)據(jù)湖里備用。

數(shù)據(jù)湖的實(shí)現(xiàn)通常建立在Hadoop生態(tài)上,可能直接存儲(chǔ)在HDFS上,也可能存儲(chǔ)在HBase或Hive上,也有用關(guān)系型數(shù)據(jù)庫(kù)作為數(shù)據(jù)湖存儲(chǔ)的可能性存在。

基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建(有彩蛋)

下圖說(shuō)明了數(shù)據(jù)分析平臺(tái)的數(shù)據(jù)處理流程:

基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建(有彩蛋)

數(shù)據(jù)分析基本都是單獨(dú)的系統(tǒng),會(huì)將其他數(shù)據(jù)源的數(shù)據(jù)(即外部數(shù)據(jù))同步到數(shù)據(jù)平臺(tái)的存儲(chǔ)體系來(lái)(即數(shù)據(jù)湖),一般數(shù)據(jù)先進(jìn)入到接入層,這一層只簡(jiǎn)單的將外部數(shù)據(jù)同步到數(shù)據(jù)分析平臺(tái),沒(méi)有做其他處理,這樣同步出錯(cuò)后重試即可,有定時(shí)同步和流式同步兩種:

  • 定時(shí)同步即我們?cè)O(shè)定在指定時(shí)間觸發(fā)同步動(dòng)作;

  • 流式同步即外部數(shù)據(jù)通過(guò)Kafka或MQ發(fā)送數(shù)據(jù)修改通知及內(nèi)容。

數(shù)據(jù)分析平臺(tái)執(zhí)行對(duì)應(yīng)操作修改數(shù)據(jù)。

接入層數(shù)據(jù)需要經(jīng)過(guò)ETL處理步驟才會(huì)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)分析人員都是基于數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)來(lái)做分析計(jì)算,數(shù)據(jù)倉(cāng)庫(kù)可以看作數(shù)據(jù)分析的唯一來(lái)源,ETL會(huì)將接入層的數(shù)據(jù)做數(shù)據(jù)清洗、轉(zhuǎn)換,再加載到數(shù)據(jù)倉(cāng)庫(kù),過(guò)濾或處理不合法、不完整的數(shù)據(jù),并使用統(tǒng)一的維度來(lái)表示數(shù)據(jù)狀態(tài)。有的系統(tǒng)會(huì)在這一層就將數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建成數(shù)據(jù)立方體、將維度信息構(gòu)建成雪花或星型模式;也有的系統(tǒng)這一層只是統(tǒng)一了所有數(shù)據(jù)信息,沒(méi)有做數(shù)據(jù)立方體,留在數(shù)據(jù)集市做。

數(shù)據(jù)集市是基于數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)對(duì)業(yè)務(wù)關(guān)心的信息做計(jì)算提取后得到的進(jìn)一步信息,是業(yè)務(wù)人員直接面對(duì)的信息,是數(shù)據(jù)倉(cāng)庫(kù)的進(jìn)一步計(jì)算和深入分析的結(jié)果,一般都會(huì)構(gòu)建數(shù)據(jù)立方體。系統(tǒng)開(kāi)發(fā)人員一般會(huì)開(kāi)發(fā)頁(yè)面來(lái)向用戶(hù)展示數(shù)據(jù)集市的數(shù)據(jù)。

二、基于Hadoop構(gòu)建數(shù)據(jù)分析平臺(tái)

基于Hadoop構(gòu)建的數(shù)據(jù)分析平臺(tái)建構(gòu)理論與數(shù)據(jù)處理流程與前面講的相同。傳統(tǒng)分析平臺(tái)使用數(shù)據(jù)庫(kù)套件構(gòu)建,這里我們使用Hadoop平臺(tái)的組件。

基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建(有彩蛋)

上面這張圖是我們使用到的Hadoop平臺(tái)的組件,數(shù)據(jù)從下到上流動(dòng),數(shù)據(jù)處理流程和上面說(shuō)的一致。

任務(wù)調(diào)度負(fù)責(zé)將數(shù)據(jù)處理的流程串聯(lián)起來(lái),這里我選擇使用的是Oozie,也有很多其它選擇。

1、數(shù)據(jù)存儲(chǔ)

基于Hadoop的數(shù)據(jù)湖主要用到了HDFS、Hive和HBase,HDFS是Hadoop平臺(tái)的文件存儲(chǔ)系統(tǒng),我們直接操縱文件是比較復(fù)雜的,所以可以使用分布式數(shù)據(jù)庫(kù)Hive或HBase用來(lái)做數(shù)據(jù)湖,存儲(chǔ)接入層、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市的數(shù)據(jù)。

Hive和HBase各有優(yōu)勢(shì):HBase是一個(gè)NoSQL數(shù)據(jù)庫(kù),隨機(jī)查詢(xún)性能和可擴(kuò)展性都比較好;而Hive是一個(gè)基于HDFS的數(shù)據(jù)庫(kù),數(shù)據(jù)文件都以HDFS文件(夾)形式存放,存儲(chǔ)了表的存儲(chǔ)位置(即在HDFS中的位置)、存儲(chǔ)格式等元數(shù)據(jù),Hive支持SQL查詢(xún),可將查詢(xún)解析成Map/Reduce執(zhí)行,這對(duì)傳統(tǒng)的數(shù)據(jù)分析平臺(tái)開(kāi)發(fā)人員更友好。

Hive數(shù)據(jù)格式可選擇文本格式或二進(jìn)制格式,文本格式有csv、json或自定義分隔,二進(jìn)制格式有orc或parquet,他們都基于行列式存儲(chǔ),在查詢(xún)時(shí)性能更好。同時(shí)可選擇分區(qū)(partition),這樣在查詢(xún)時(shí)可通過(guò)條件過(guò)濾進(jìn)一步減少數(shù)據(jù)量。接入層一般選擇csv或json等文本格式,也不做分區(qū),以盡量簡(jiǎn)化數(shù)據(jù)同步。數(shù)據(jù)倉(cāng)庫(kù)則選擇orc或parquet,以提升數(shù)據(jù)離線計(jì)算性能。

數(shù)據(jù)集市這塊可以選擇將數(shù)據(jù)灌回傳統(tǒng)數(shù)據(jù)庫(kù)(RDBMS),也可以停留在數(shù)據(jù)分析平臺(tái),使用NoSQL提供數(shù)據(jù)查詢(xún)或用Apache Kylin來(lái)構(gòu)建數(shù)據(jù)立方體,提供SQL查詢(xún)接口。

2、數(shù)據(jù)同步

我們通過(guò)數(shù)據(jù)同步功能使得數(shù)據(jù)到達(dá)接入層,使用到了Sqoop和Kafka。數(shù)據(jù)同步可以分為全量同步和增量同步,對(duì)于小表可以采用全量同步,對(duì)于大表全量同步是比較耗時(shí)的,一般都采用增量同步,將變動(dòng)同步到數(shù)據(jù)平臺(tái)執(zhí)行,以達(dá)到兩邊數(shù)據(jù)一致的目的。

全量同步使用Sqoop來(lái)完成,增量同步如果考慮定時(shí)執(zhí)行,也可以用Sqoop來(lái)完成。或者,也可以通過(guò)Kafka等MQ流式同步數(shù)據(jù),前提是外部數(shù)據(jù)源會(huì)將變動(dòng)發(fā)送到MQ。

3、ETL及離線計(jì)算

我們使用Yarn來(lái)統(tǒng)一管理和調(diào)度計(jì)算資源。相較Map/Reduce,Spark SQL及Spark RDD對(duì)開(kāi)發(fā)人員更友好,基于內(nèi)存計(jì)算效率也更高,所以我們使用Spark on Yarn作為分析平臺(tái)的計(jì)算選型。

ETL可以通過(guò)Spark SQL或Hive SQL來(lái)完成,Hive在2.0以后支持存儲(chǔ)過(guò)程,使用起來(lái)更方便。當(dāng)然,出于性能考慮Saprk SQL還是不錯(cuò)的選擇。

直播回放鏈接

https://m./topic/details?topicId=2000001395952730&minimal=1

彩蛋來(lái)了

在本文微信訂閱號(hào)(dbaplus)評(píng)論區(qū)留下足以引起共鳴的真知灼見(jiàn),小編將在本文發(fā)布后的隔天中午12點(diǎn)選出留言最精彩的一位讀者,送出以下書(shū)籍一本~

注:同一個(gè)月里,已獲贈(zèng)者將不可重復(fù)拿書(shū)。

基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建(有彩蛋)

特別鳴謝圖靈社區(qū)為活動(dòng)提供圖書(shū)贊助。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    天海翼高清二区三区在线| 在线观看视频国产你懂的| 国产精品久久熟女吞精| 成人午夜免费观看视频| 婷婷激情四射在线观看视频 | 中国美女草逼一级黄片视频| 国产精品一区二区三区黄色片| 欧美视频在线观看一区| 日本欧美视频在线观看免费 | a久久天堂国产毛片精品| 久热青青草视频在线观看| 加勒比系列一区二区在线观看| 国产免费黄片一区二区| 少妇淫真视频一区二区| 亚洲精品熟女国产多毛| 在线观看那种视频你懂的| 午夜色午夜视频之日本| 日本妇女高清一区二区三区| 有坂深雪中文字幕亚洲中文| 午夜色午夜视频之日本| 国产免费一区二区三区av大片| 久久热麻豆国产精品视频| 免费精品一区二区三区| 老熟妇2久久国内精品| 翘臀少妇成人一区二区| 国产精品激情对白一区二区| 亚洲熟妇熟女久久精品 | 精品推荐国产麻豆剧传媒| 欧美大粗爽一区二区三区| 亚洲精品欧美精品日韩精品| 经典欧美熟女激情综合网| 日本免费熟女一区二区三区| 欧美欧美欧美欧美一区| 一区二区三区日韩中文| 91亚洲精品国产一区| 国产在线成人免费高清观看av| 久久机热频这里只精品| 国产a天堂一区二区专区| 97人摸人人澡人人人超碰| 91欧美激情在线视频| 国产亚洲视频香蕉一区|