EMR 彈性數(shù)據(jù)湖分析最佳實(shí)踐
阿里云最佳實(shí)踐目前已覆蓋23類常用場景,有200多篇最佳實(shí)踐,這其中涉及110款以上阿里云產(chǎn)品的最佳使用場景。目前,最佳實(shí)踐已成功幫助大量客戶實(shí)現(xiàn)自助上云。
分享人
- 解決方案架構(gòu)師-明譽(yù)
- 阿里云計(jì)算平臺(tái)事業(yè)部產(chǎn)品經(jīng)理-子關(guān)
本篇內(nèi)容將從3個(gè)部分為讀者介紹關(guān)于EMR彈性低成本離線大數(shù)據(jù)分析最佳實(shí)踐,希望可以讓大家對EMR有更深入的了解,并可以將這些特性應(yīng)用到項(xiàng)目中,達(dá)到降本提效的目的。
- 最佳實(shí)踐原理講解
- EMR核心產(chǎn)品講解
- 最佳實(shí)踐系統(tǒng)搭建
一、最佳實(shí)踐方案講解
1. 分析效果
在上圖的demo中,分別進(jìn)行了Hive on MR 和 Hive on tez 的日志數(shù)據(jù)分析, Hive on tez 的執(zhí)行效率優(yōu)于Hive on MR 。目前EMR的Hive引擎支持 Hive on tez 。
展示了完整的電商網(wǎng)站 demo 搭建、日志埋點(diǎn)、日志產(chǎn)生、日志投遞、分析作業(yè)和分析工作流的建立,EMR計(jì)算集群彈性伸縮等核心步驟和能力可以參考本實(shí)踐來熟悉如何基于阿里云公有云產(chǎn)品搭建和完善自己的離線大數(shù)據(jù)日志分析系統(tǒng)。
2. 場景描述
- 本最佳實(shí)踐講解了如何基于阿里云產(chǎn)品快速搭建一個(gè)企業(yè)級的離線日志大數(shù)據(jù)分析系統(tǒng),這里以搭建一個(gè)電商網(wǎng)站用戶訪問行為日志分析系統(tǒng)為例。
- 其中用到的核心產(chǎn)品是阿里云推出的大數(shù)據(jù)分析平臺(tái)EMR,其提供了一站式的大數(shù)據(jù)系統(tǒng)處理解決方案。
- 本最佳實(shí)踐利用EMR結(jié)合阿里云日志服務(wù)SLS、對象存儲(chǔ)OSS和云數(shù)據(jù)庫RDS MySOL 版等產(chǎn)品構(gòu)建一個(gè)海量低成本彈性的離線電商網(wǎng)站用戶訪問行為日志大數(shù)據(jù)分析系統(tǒng)。
適用客戶有以下:互聯(lián)網(wǎng)行業(yè)客戶,例如電商交易客戶等;業(yè)務(wù)為需要進(jìn)行離線大數(shù)據(jù)分析,例如用戶網(wǎng)站訪問行為日志;數(shù)據(jù)已經(jīng)使用了阿里云EMR或者準(zhǔn)備使用;具備1-5名有Hadoop背景的工程人員;原有服務(wù)基于開源算法體系,但是受限現(xiàn)有人員和成本無法進(jìn)一步提升。
3. 系統(tǒng)架構(gòu)圖
最佳實(shí)踐的產(chǎn)品列表
系統(tǒng)架構(gòu)是使用了阿里云的CADT工具進(jìn)行部署,用戶也可以根據(jù)本最佳實(shí)踐提供的系統(tǒng)架構(gòu)圖進(jìn)行一鍵式的本系統(tǒng)資源構(gòu)建和部署最后用于實(shí)踐的測試和驗(yàn)證。
4. 核心產(chǎn)品EMR
EMR是阿里云阿里云推出的企業(yè)級大數(shù)據(jù)分析平臺(tái)E-MapReduce(簡稱EMR),EMR完全兼容開源Hadoop生態(tài)系統(tǒng),并且基于阿里云大數(shù)據(jù)團(tuán)隊(duì)豐富的研發(fā)運(yùn)維經(jīng)驗(yàn)對相關(guān)組建提供了優(yōu)化能力,例如權(quán)限認(rèn)證、計(jì)算引擎、集群管理、作業(yè)管理和調(diào)度管理、基礎(chǔ)資源的彈性能力等。并且EMR能夠與阿里云的其他云產(chǎn)品進(jìn)行無縫集成,例如本實(shí)踐里EMR可以直接分析消費(fèi)存儲(chǔ)在OSS上的海量日志,提供了計(jì)算存儲(chǔ)分離的離線大數(shù)據(jù)分析架構(gòu),方便用戶進(jìn)行運(yùn)維管理、作業(yè)分析的同時(shí),極大的節(jié)省了大數(shù)據(jù)分析系統(tǒng)的計(jì)算和存儲(chǔ)成本。
5. 業(yè)務(wù)流程圖
在這個(gè)離線大數(shù)據(jù)分析系統(tǒng)中,首先基于阿里云的SLB、ECS、RDS等云產(chǎn)品搭建了一個(gè)簡單的電商交易網(wǎng)站,而且在網(wǎng)站頁面代碼里植入了用戶訪問行為埋點(diǎn)日志采集,結(jié)合阿里云日志服務(wù)SLS提供的Webtracking能力將用戶訪問日志實(shí)時(shí)傳送到SLS的logstore里面。接下來通過SLS的logshipper能力將SLS中存儲(chǔ)的日志準(zhǔn)實(shí)時(shí)地投遞存儲(chǔ)到阿里云的對象存儲(chǔ)OSS上面,最后通過阿里云EMR的離線大數(shù)據(jù)分析引擎Hive消費(fèi)分析存儲(chǔ)在OSS上的日志。在這個(gè)過程中展示了EMR在大數(shù)據(jù)分析作業(yè)的作業(yè)開發(fā)、工作流設(shè)計(jì)和管理大數(shù)據(jù)核心系統(tǒng)參數(shù)管理等的便捷能力,同時(shí)也展現(xiàn)了一邁在底層基礎(chǔ)資源的彈性能力。通過本實(shí)踐用戶可以知道如何通過阿里云的多個(gè)云產(chǎn)品來完整的構(gòu)建自己的計(jì)算存儲(chǔ)分離架構(gòu)的離線大數(shù)據(jù)分析系統(tǒng),優(yōu)化和節(jié)省計(jì)算及存儲(chǔ)成本,同時(shí)也可以簡化用戶的大數(shù)據(jù)分析系統(tǒng)的運(yùn)維成本。
6. 方案優(yōu)勢
阿里云彈性低成本離線大數(shù)據(jù)分析系統(tǒng)方案的優(yōu)勢如下:
- 阿里云云原生產(chǎn)品組合豐富,生態(tài)完善。資源豐富,產(chǎn)品組合多樣,"日志服務(wù)+存儲(chǔ)服務(wù)+大數(shù)據(jù)分析平臺(tái)"組合使用。
- 阿里云具有成熟的企業(yè)級大數(shù)據(jù)分析平臺(tái)EMR。完全兼容開源生態(tài)系統(tǒng),并在開源生態(tài)基礎(chǔ)上強(qiáng)化; 伴隨社區(qū)生態(tài)的發(fā)展,全球部署;完整的企業(yè)級一體化平臺(tái),支持集群管理、作業(yè)管理&調(diào)度管理。
- EMR可以提供計(jì)算與存儲(chǔ)分離的大數(shù)據(jù)分析平臺(tái)。 計(jì)算與存儲(chǔ)分離架構(gòu),優(yōu)化用戶資源成本;計(jì)算資源彈性伸縮、集群快速部署。
二、EMR核心產(chǎn)品講解
1. EMR軟件棧
EMR是阿里云上一款開源大數(shù)據(jù)平臺(tái)產(chǎn)品,EMR主要由四個(gè)主要組成部分。
- 第一部分是對接開源生態(tài),這部分主要對接了常用的開源大數(shù)據(jù)產(chǎn)品,產(chǎn)品和組件包括HDFS、YARN、Kudu等存儲(chǔ)計(jì)算引擎,這部分100%采用開源組建,用戶是在使用的時(shí)候可以完全無縫與現(xiàn)有的大數(shù)據(jù)產(chǎn)品使用習(xí)慣完全相同。
- 第二部分是EMR在完全兼容開源API接口基礎(chǔ)上實(shí)現(xiàn)了內(nèi)核的核心增強(qiáng),比如Spark、Flink、TensorFlow、Delta Lake等開源組件。
- 第三部分是EMR自研的包括監(jiān)控告警、智能運(yùn)維、JindoFS、EMR Agent等集群管理和在使用開源大數(shù)據(jù)組件時(shí)和云生態(tài)對接的一些功能。
- 第四部分是與阿里云密切配合的其他云產(chǎn)品,比如OSS、日志服務(wù)SLS、ECS、ECI、ACK等產(chǎn)品。
2. EMR VS開源大數(shù)據(jù)管理平臺(tái)
EMR 與開源大數(shù)據(jù)自建平臺(tái)相比,具有低成本、大規(guī)模、豐富云生態(tài)、高性能四個(gè)核心性能的增強(qiáng)。
在成本方面,通過實(shí)現(xiàn)彈性伸縮、Spot+預(yù)留實(shí)例的購買方式實(shí)現(xiàn)了計(jì)算成本降低20%以上,實(shí)現(xiàn)數(shù)據(jù)全生命周期管理、數(shù)據(jù)分層存儲(chǔ)使存儲(chǔ)成本降低了10%以上。
EMR具有豐富的集群管理經(jīng)驗(yàn),能夠在數(shù)千臺(tái)的大規(guī)模集群上實(shí)現(xiàn)快速的向HDFS、DataNode、NameNode的滾動(dòng)重啟、DAtaNode的Decommission優(yōu)化、YARN大規(guī)模資源調(diào)度優(yōu)化等功能。
EMR與開源云生態(tài)的結(jié)合,Dataworks、PAI是計(jì)算平臺(tái)優(yōu)秀的工作流處理和管理以及機(jī)器學(xué)習(xí)工具,可以與EMR無縫集成。同時(shí)EMR基于ECS可以實(shí)現(xiàn)一些部署集邏輯嚴(yán)格打散以及E2E的運(yùn)維流程。
EMR相比較與開源性能大幅提升,如AE、物化視圖、runtime filter、Remote Shuffle Service,極大地提升了在計(jì)算性能上、計(jì)算穩(wěn)定性上的躍升。
三、最佳實(shí)踐系統(tǒng)搭建
1. 通過CADT部署資源
- 登錄云速搭CADT管理控制臺(tái)。
-
單擊新建 > 官方模板庫新建。
-
找到“EMR彈性低成本離線大數(shù)據(jù)分析”模板,單擊基于方案新建,可以根據(jù)具體業(yè)務(wù)需求使用該公共模版并配置自己需要的參數(shù)進(jìn)行資源架構(gòu)的創(chuàng)建。
-
用戶配置好相關(guān)參數(shù),如VPC設(shè)置、vswitch配置、SLB配置、eip配置等等,單擊右上角的保存,并設(shè)置應(yīng)用名稱。
-
單擊部署應(yīng)用。
-
按界面提示依次完成資源校驗(yàn)、確認(rèn)應(yīng)用成本并支付下單,創(chuàng)建資源。
2. 搭建電商網(wǎng)站Demo
RDS數(shù)據(jù)庫配置
-
進(jìn)入 RDS 控制臺(tái),找到創(chuàng)建的實(shí)例,單擊管理,找到并記錄 RDS 的內(nèi)網(wǎng)地址。
- 進(jìn)入數(shù)據(jù)庫管理,創(chuàng)建新的數(shù)據(jù)庫。
電商應(yīng)用安裝
-
在 SLB 控制臺(tái)找到之前創(chuàng)建的 SLB 實(shí)例的 EIP 地址,進(jìn)行拷貝,在瀏覽器打開。
-
檢查安裝環(huán)境
- 環(huán)境正常,進(jìn)行下一步安裝。
-
從 RDS 中獲取數(shù)據(jù)庫內(nèi)網(wǎng)訪問地址,輸入賬號密碼和數(shù)據(jù)庫名稱。
- 填寫電商網(wǎng)站的前臺(tái)和后臺(tái)地址,單擊下一步。
- 進(jìn)行商店個(gè)性化配置,選擇時(shí)區(qū)、貨幣、語言等。
7.進(jìn)行后臺(tái)管理員賬號配置。請保存好設(shè)置的管理員賬號和密碼,以便后續(xù)步驟登錄電商后臺(tái)管理界面使用。
8.開始進(jìn)行安裝,忽略進(jìn)度條。
-
稍等一會(huì),使用 SLB 的 EIP 地址用瀏覽器打開,可以訪問電商網(wǎng)站前端界面表示安裝成功。
3. 電商網(wǎng)站日志生產(chǎn)
OSS Bucket相關(guān)配置
-
在通過 CADT 部署資源中已經(jīng)使用 CADT 部署了該實(shí)踐所需的 OSS Bucket。
-
雙擊選擇創(chuàng)建的 OSS bucket,然后選擇文件管理 > 上傳文件,將 loghub-tracking.js腳本上傳到該 bucket 下。
-
同樣在該 Bucket 的“文件管理”工作界面的 “新建目錄”下創(chuàng)建一個(gè)名為 tes2 的目錄供后續(xù)存放從 SLS 投遞過來的日志。
SLS日志服務(wù)WebTracking配置
- 在通過 CADT 部署資源中已經(jīng)通過 CADT 開通了該實(shí)踐所需的 SLS 的 Project 和logstore,并且開通了 WebTracking 功能,在日志服務(wù)控制臺(tái)的接入數(shù)據(jù)界面找到WebTracking(支持模糊搜索)。
-
開始進(jìn)行 WebTracking 功能配置。
電商網(wǎng)站埋點(diǎn)
-
使用之前電商網(wǎng)站搭建時(shí)設(shè)置的管理員賬號和密碼登陸電商網(wǎng)站后臺(tái)管理界面(http://SLB 的 EIP 地址/admin),進(jìn)入內(nèi)容配置頁面,編輯主站的設(shè)計(jì)。
-
在 HTML Head 的 Scripts and Style Sheets 處,插入如下內(nèi)容并保存(可以從附件中拷貝),注:第 2 行的 loghub-tracking.js 存放地址和第 4 行的日志服務(wù) SLS 的 project名和 logstore 名請根據(jù)用戶自己的實(shí)際情況進(jìn)行修改。
- 訪問電商網(wǎng)站頁面就會(huì)把埋點(diǎn)日志上傳到 SLS 日志系統(tǒng)。進(jìn)入 Logstore 查看日志,模擬用戶行為的日志數(shù)據(jù)已經(jīng)生成并上傳到了日志庫。
4. 日志投遞到OSS
開啟日志投遞
-
在開啟日志服務(wù)數(shù)據(jù)投遞到 OSS 之前,用戶首先需要完成云資源訪問授權(quán),用戶訪問鏈接 https://help.aliyun.com/document_detail/29002.html,然后單擊云資源訪問授權(quán),完成云資源對日志服務(wù)的訪問授權(quán)。
- logstore 的日志投遞到 OSS 需要獲取用戶的 ARN,接下來獲取 ARN,首先進(jìn)入訪問控制(RAM)控制臺(tái)。
- 然后在 RAM 控制臺(tái)選擇“RAM 角色管理”, 單擊“AliyunLogDefaultRole”這條 RAM角色,獲取用戶的 ARN。
-
接下來在日志服務(wù)控制臺(tái)單擊之間創(chuàng)建的 Project 進(jìn)入日志庫,開始進(jìn)行日志投遞到OSS 的配置;然后單擊 OSS 以及“開啟投遞”,準(zhǔn)備投遞日志到 OSS 服務(wù)的相關(guān)配置。
-
單擊確定,確定日志投遞到 OSS 的配置。
-
再次使用前面創(chuàng)建的 SLB 的 EIP 地址直接瀏覽器訪問模擬的電商網(wǎng)站,就會(huì)執(zhí)行腳本不停生成新的訪問日志。
查詢OSS上的日志存儲(chǔ)
-
在日志服務(wù)控制臺(tái)選擇創(chuàng)建的日志庫,查看日志投遞到 OSS 的任務(wù)每隔 5 分鐘(默認(rèn),也可以自定義設(shè)置)已經(jīng)生成并投遞成功。
- 在 OSS 控制臺(tái)對應(yīng)的 bucket 下的文件目錄可以查詢到已投遞過來的日志。
5. EMR集群配置
彈性EMR集群
- 使用前面的 CADT 工具已經(jīng)創(chuàng)建好了本實(shí)踐所需的 EMR 集群。
- 硬件配置,按量付費(fèi)。
- EMR 集群默認(rèn)不開啟公網(wǎng)訪問,如需通過公網(wǎng)訪問,需要給 Master 節(jié)點(diǎn)掛載 EIP。
-
勾選服務(wù)條款協(xié)議,確認(rèn)配置完成集群創(chuàng)建。集群創(chuàng)建成功以后,可以在集群管理 > 服務(wù)列表查看集群所能支持的服務(wù)。
-
創(chuàng)建彈性伸縮集群。
- EMR 控制臺(tái)進(jìn)入集群列表單擊選擇創(chuàng)建的集群,選擇彈性伸縮,在彈性伸縮 > 彈性伸縮配置里選擇新建彈性伸縮組,然后選擇需要的計(jì)算機(jī)型和配置以及付費(fèi)類型等,創(chuàng)建機(jī)器組。
- 對新建的機(jī)器組配置彈性伸縮規(guī)則。
-
添加擴(kuò)容和縮容規(guī)則,伸縮規(guī)則支持按照規(guī)定時(shí)間伸縮和按照規(guī)定負(fù)載伸縮。
-
開啟彈性伸縮狀態(tài)。
-
在彈性伸縮記錄可以查看機(jī)器組機(jī)器的擴(kuò)容和縮容記錄。