亚洲免费一级高潮_欧美极品白嫩视频在线_中国AV片在线播放_欧美亚洲日韩欧洲在线看

您現(xiàn)在所在的位置:首頁 >關(guān)于奇酷 > 行業(yè)動(dòng)態(tài) > 大數(shù)據(jù)培訓(xùn):基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建方法

大數(shù)據(jù)培訓(xùn):基于Hadoop的數(shù)據(jù)分析平臺(tái)搭建方法

來源:奇酷教育 發(fā)表于:

  從概念上來講,我們可以把數(shù)據(jù)分析平臺(tái)分為接入層(Landing)、整合層(Integration)、表現(xiàn)層(Persentation)、語義層(Semantic)、終端用戶

  從概念上來講,我們可以把數(shù)據(jù)分析平臺(tái)分為接入層(Landing)、整合層(Integration)、表現(xiàn)層(Persentation)、語義層(Semantic)、終端用戶應(yīng)用(End-user applications)、元數(shù)據(jù)(Metadata)?;?strong>Hadoop和數(shù)據(jù)庫的分析平臺(tái)基本概念和邏輯架構(gòu)是通用的,只是技術(shù)選型的不同:
  1. 接入層(Landing):以和源系統(tǒng)相同的結(jié)構(gòu)暫存原始數(shù)據(jù),有時(shí)被稱為“貼源層”或ODS;
  2. 整合層(Integration):持久存儲(chǔ)整合后的企業(yè)數(shù)據(jù),針對(duì)企業(yè)信息實(shí)體和業(yè)務(wù)事件建模,代表組織的“唯 真相來源”,有時(shí)被稱為“數(shù)據(jù)倉庫”;
  3. 表現(xiàn)層(Presentation):為滿足較終用戶的需求提供可消費(fèi)的數(shù)據(jù),針對(duì)商業(yè)智能和查詢性能建模,有時(shí)被稱為“數(shù)據(jù)集市”;
  4. 語義層(Semantic):提供數(shù)據(jù)的呈現(xiàn)形式和訪問控制,例如某種報(bào)表工具;
  5. 終端用戶應(yīng)用(End-user applications):使用語義層的工具,將表現(xiàn)層數(shù)據(jù)較終呈現(xiàn)給用戶,包括儀表板、報(bào)表、圖表等多種形式;
  6. 元數(shù)據(jù)(Metadata):記錄各層數(shù)據(jù)項(xiàng)的定義(Definitions)、血緣(Genealogy)、處理過程(Processing)。
  來自不同數(shù)據(jù)源的“生”數(shù)據(jù)(接入層),和經(jīng)過中間處理之后得到的整合層、表現(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ù)庫作為數(shù)據(jù)湖存儲(chǔ)的可能性存在。
  一,數(shù)據(jù)分析平臺(tái)的數(shù)據(jù)處理流程:
  數(shù)據(jù)分析基本都是單獨(dú)的系統(tǒng),會(huì)將其他數(shù)據(jù)源的數(shù)據(jù)(即外部數(shù)據(jù))同步到數(shù)據(jù)平臺(tái)的存儲(chǔ)體系來(即數(shù)據(jù)湖), 般數(shù)據(jù)先進(jìn)入到接入層,這 層只簡單的將外部數(shù)據(jù)同步到數(shù)據(jù)分析平臺(tái),沒有做其他處理,這樣同步出錯(cuò)后重試即可,有定時(shí)同步和流式同步兩種:
  1.定時(shí)同步即我們?cè)O(shè)定在指定時(shí)間觸發(fā)同步動(dòng)作;
  2. 流式同步即外部數(shù)據(jù)通過Kafka或MQ發(fā)送數(shù)據(jù)修改通知及內(nèi)容。
  3. 數(shù)據(jù)分析平臺(tái)執(zhí)行對(duì)應(yīng)操作修改數(shù)據(jù)。
  接入層數(shù)據(jù)需要經(jīng)過ETL處理步驟才會(huì)進(jìn)入數(shù)據(jù)倉庫,數(shù)據(jù)分析人員都是基于數(shù)據(jù)倉庫的數(shù)據(jù)來做分析計(jì)算,數(shù)據(jù)倉庫可以看作數(shù)據(jù)分析的唯 來源,ETL會(huì)將接入層的數(shù)據(jù)做數(shù)據(jù)清洗、轉(zhuǎn)換,再加載到數(shù)據(jù)倉庫,過濾或處理不合法、不完整的數(shù)據(jù),并使用統(tǒng) 的維度來表示數(shù)據(jù)狀態(tài)。有的系統(tǒng)會(huì)在這 層就將數(shù)據(jù)倉庫構(gòu)建成數(shù)據(jù)立方體、將維度信息構(gòu)建成雪花或星型模式;也有的系統(tǒng)這 層只是統(tǒng) 了所有數(shù)據(jù)信息,沒有做數(shù)據(jù)立方體,留在數(shù)據(jù)集市做。
  數(shù)據(jù)集市是基于數(shù)據(jù)倉庫數(shù)據(jù)對(duì)業(yè)務(wù)關(guān)心的信息做計(jì)算提取后得到的進(jìn) 步信息,是業(yè)務(wù)人員直接面對(duì)的信息,是數(shù)據(jù)倉庫的進(jìn) 步計(jì)算和深入分析的結(jié)果, 般都會(huì)構(gòu)建數(shù)據(jù)立方體。系統(tǒng)開發(fā)人員 般會(huì)開發(fā)頁面來向用戶展示數(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ù)庫套件構(gòu)建,這里我們使用Hadoop平臺(tái)的組件。
  上面這張圖是我們使用到的Hadoop平臺(tái)的組件,數(shù)據(jù)從下到動(dòng),數(shù)據(jù)處理流程和上面說的 致。
  任務(wù)調(diào)度負(fù)責(zé)將數(shù)據(jù)處理的流程串聯(lián)起來,這里我選擇使用的是Oozie,也有很多其它選擇。
  1、數(shù)據(jù)存儲(chǔ):基于Hadoop的數(shù)據(jù)湖主要用到了HDFS、Hive和HBase,HDFS是Hadoop平臺(tái)的文件存儲(chǔ)系統(tǒng),我們直接操縱文件是比較復(fù)雜的,所以可以使用分布式數(shù)據(jù)庫Hive或HBase用來做數(shù)據(jù)湖,存儲(chǔ)接入層、數(shù)據(jù)倉庫、數(shù)據(jù)集市的數(shù)據(jù)。
  Hive和HBase各有優(yōu)勢(shì):HBase是 個(gè)NoSQL數(shù)據(jù)庫,隨機(jī)查詢性能和可擴(kuò)展性都比較好;而Hive是 個(gè)基于HDFS的數(shù)據(jù)庫,數(shù)據(jù)文件都以HDFS文件(夾)形式存放,存儲(chǔ)了表的存儲(chǔ)位置(即在HDFS中的位置)、存儲(chǔ)格式等元數(shù)據(jù),Hive支持SQL查詢,可將查詢解析成Map/Reduce執(zhí)行,這對(duì)傳統(tǒng)的數(shù)據(jù)分析平臺(tái)開發(fā)人員更友好。
  Hive數(shù)據(jù)格式可選擇文本格式或二進(jìn)制格式,文本格式有csv、json或自定義分隔,二進(jìn)制格式有orc或parquet,他們都基于行列式存儲(chǔ),在查詢時(shí)性能更好。同時(shí)可選擇分區(qū)(partition),這樣在查詢時(shí)可通過條件過濾進(jìn) 步減少數(shù)據(jù)量。接入層 般選擇csv或json等文本格式,也不做分區(qū),以盡量簡化數(shù)據(jù)同步。數(shù)據(jù)倉庫則選擇orc或parquet,以提升數(shù)據(jù)離線計(jì)算性能。
  數(shù)據(jù)集市這塊可以選擇將數(shù)據(jù)灌回傳統(tǒng)數(shù)據(jù)庫(RDBMS),也可以停留在數(shù)據(jù)分析平臺(tái),使用NoSQL提供數(shù)據(jù)查詢或用Apache Kylin來構(gòu)建數(shù)據(jù)立方體,提供SQL查詢接口。
  2、數(shù)據(jù)同步:我們通過數(shù)據(jù)同步功能使得數(shù)據(jù)到達(dá)接入層,使用到了Sqoop和Kafka。數(shù)據(jù)同步可以分為全量同步和增量同步,對(duì)于小表可以采用全量同步,對(duì)于大表全量同步是比較耗時(shí)的, 般都采用增量同步,將變動(dòng)同步到數(shù)據(jù)平臺(tái)執(zhí)行,以達(dá)到兩邊數(shù)據(jù) 致的目的。
  全量同步使用Sqoop來完成,增量同步如果考慮定時(shí)執(zhí)行,也可以用Sqoop來完成?;蛘?,也可以通過Kafka等MQ流式同步數(shù)據(jù),前提是外部數(shù)據(jù)源會(huì)將變動(dòng)發(fā)送到MQ。
  3、ETL及離線計(jì)算:我們使用Yarn來統(tǒng) 管理和調(diào)度計(jì)算資源。相較Map/Reduce,Spark SQL及Spark RDD對(duì)開發(fā)人員更友好,基于內(nèi)存計(jì)算效率也更高,所以我們使用Spark on Yarn作為分析平臺(tái)的計(jì)算選型。
  ETL可以通過Spark SQL或Hive SQL來完成,Hive在2.0以后支持存儲(chǔ)過程,使用起來更方便。當(dāng)然,出于性能考慮Saprk SQL也是不錯(cuò)的選擇。