阿里云 EMR最佳實(shí)踐和容災(zāi)
阿里云EMR(Elastic MapReduce)是一項(xiàng)?Web?服務(wù)咐蚯,簡(jiǎn)化了大數(shù)據(jù)處理童漩,提供的大數(shù)據(jù)框架可以讓您輕松、高速春锋、經(jīng)濟(jì)矫膨、安全、穩(wěn)定地處理大數(shù)據(jù),滿足如日志分析侧馅、數(shù)據(jù)倉(cāng)庫(kù)危尿、商業(yè)智能、機(jī)器學(xué)習(xí)馁痴、科學(xué)模擬等業(yè)務(wù)需求谊娇。
一. 最佳實(shí)踐
1. 混合使用包年及按需計(jì)費(fèi),節(jié)約成本
數(shù)據(jù)都存在熱罗晕、冷的差異济欢。一般建議把冷數(shù)據(jù)存放在OSS中,熱數(shù)據(jù)放在本地HDFS中小渊。晚上00:00-06:00按需運(yùn)行法褥,運(yùn)行完成后釋放集群,節(jié)約成本酬屉。晚上ECS水位低半等,比較容易申請(qǐng)到大集群。
2. 離線處理-用戶行為分析
服務(wù)端會(huì)把這些信息存儲(chǔ)在OSS中呐萨,再啟動(dòng)E-MapReduce中的Hive腳本分析這些數(shù)據(jù)杀饵,如:統(tǒng)計(jì)pv和uv,再把每個(gè)鏈接的訪問(wèn)情況存儲(chǔ)在RDS中谬擦,最后通過(guò)報(bào)表系統(tǒng)展示切距。
3. 離線處理+在線服務(wù)進(jìn)行多維度信息統(tǒng)計(jì)
比如考慮到這樣的一個(gè)場(chǎng)景,車(chē)載APP會(huì)實(shí)時(shí)上傳汽車(chē)的物理指標(biāo)怯屉,包括車(chē)速蔚舀、發(fā)動(dòng)機(jī)功耗饵沧、電池電壓等锨络,這些信息首先存儲(chǔ)到EMR Hbase中,再啟用E-MapReduce的hive或者mapreduce或者spark離線分析狼牺,按照城市的粒度羡儿,即分析出來(lái)某個(gè)城市某個(gè)時(shí)段的車(chē)輛出行率、出行里程平均數(shù)是钥、車(chē)速平均值掠归、平均油耗、出行車(chē)輛數(shù)悄泥、平均怠速時(shí)間虏冻、劇烈駕駛次數(shù),這些信息又存放到Hbase中做成服務(wù)弹囚。
4. 離線處理-推薦(機(jī)器學(xué)習(xí))
用戶會(huì)對(duì)視頻發(fā)生點(diǎn)贊厨相、喜歡、收藏、分享蛮穿、觀看等行為庶骄,將用戶對(duì)某個(gè)視頻產(chǎn)生同一行為的用戶進(jìn)行關(guān)聯(lián)分析建模。然后當(dāng)某個(gè)用戶看了某個(gè)視頻践磅,而相關(guān)聯(lián)的好友用戶沒(méi)有看過(guò)該視頻的話单刁,就會(huì)在該用戶觀看視頻播放器的下方進(jìn)行推薦。整個(gè)過(guò)程用了協(xié)同過(guò)濾算法府适。主要是spark mllib分析oss中用戶的日志羔飞,存放在rds中。
5. 實(shí)時(shí)處理-監(jiān)控報(bào)警
統(tǒng)計(jì)數(shù)據(jù)從多個(gè)維度來(lái)展現(xiàn)當(dāng)前服務(wù)質(zhì)量檐春,例如各種請(qǐng)求狀態(tài)碼占比褥傍,請(qǐng)求接口占比,每種請(qǐng)求的狀態(tài)碼占比喇聊,請(qǐng)求延時(shí)分布恍风,每種請(qǐng)求的時(shí)延占比。最終結(jié)果可以呈現(xiàn)給運(yùn)維人員或者開(kāi)發(fā)人員誓篱,用來(lái)進(jìn)一步保證服務(wù)質(zhì)量和優(yōu)化服務(wù)性能朋贬。如果出現(xiàn)一些異常情況,則報(bào)警給運(yùn)維人員或者開(kāi)發(fā)人員窜骄。主要的架構(gòu)就是使用了spark streaming接受logservice實(shí)時(shí)推送過(guò)來(lái)的日志锦募,分析完成后,實(shí)時(shí)存放到rds中邻遏,出現(xiàn)問(wèn)題時(shí)監(jiān)控報(bào)警系統(tǒng)會(huì)觸發(fā)報(bào)警糠亩。
例如一個(gè)有用戶瀏覽的網(wǎng)站,日志信息用logService接收准验。一方面存入到OSS中赎线,晚上啟動(dòng)E-MapReduce離線分析,比如糊饱,頁(yè)面的UV垂寥、從A頁(yè)面到B頁(yè)面的調(diào)轉(zhuǎn),提供運(yùn)營(yíng)同學(xué)數(shù)據(jù)化支持另锋。另一方面滞项,用戶在不斷瀏覽過(guò)程中,我們希望根據(jù)瀏覽情況實(shí)時(shí)自動(dòng)推薦用戶內(nèi)容夭坪,E-MapReduce spark Streaming就實(shí)時(shí)接收 logService的數(shù)據(jù)文判,再結(jié)合spark mllib的算法,自動(dòng)算出推薦內(nèi)容室梅,存儲(chǔ)到RDS中戏仓,前端用戶瀏覽時(shí)推薦的內(nèi)容會(huì)實(shí)時(shí)發(fā)生變化潭流。
阿里云 EMR最佳實(shí)踐和容災(zāi)-博客-云棲社區(qū)-阿里云 二. 容災(zāi)設(shè)計(jì)
1. 數(shù)據(jù)容災(zāi)
Hadoop分布式文件系統(tǒng)(HDFS)將每一個(gè)文件的數(shù)據(jù)進(jìn)行分塊存儲(chǔ),同時(shí)每一個(gè)數(shù)據(jù)塊又保存有多個(gè)副本(系統(tǒng)默認(rèn)為每一個(gè)數(shù)據(jù)塊存放3個(gè)副本),盡量保證這些數(shù)據(jù)塊副本分布在不同的機(jī)架之上(在大多數(shù)情況下柜去,副本系數(shù)是3灰嫉,HDFS的存放策略是將一個(gè)副本存放在本地機(jī)架節(jié)點(diǎn)上,一個(gè)副本存放在同一個(gè)機(jī)架的另一個(gè)節(jié)點(diǎn)上嗓奢,最后一個(gè)副本放在不同機(jī)架的節(jié)點(diǎn)上)讼撒。
HDFS會(huì)定期掃描數(shù)據(jù)副本,若發(fā)現(xiàn)數(shù)據(jù)副本發(fā)生丟失股耽,則會(huì)快速的進(jìn)行數(shù)據(jù)的復(fù)制以保證副本的數(shù)量根盒。若發(fā)現(xiàn)節(jié)點(diǎn)丟失,則節(jié)點(diǎn)上的所有數(shù)據(jù)也會(huì)快速的進(jìn)行復(fù)制恢復(fù)物蝙。在阿里云上炎滞,如果是使用云盤(pán)的技術(shù),則在后臺(tái)每一個(gè)云盤(pán)都會(huì)對(duì)應(yīng)三個(gè)數(shù)據(jù)副本诬乞,當(dāng)其中的任何一個(gè)出現(xiàn)問(wèn)題時(shí)册赛,副本數(shù)據(jù)都會(huì)自動(dòng)進(jìn)行切換并恢復(fù),以保證數(shù)據(jù)的可靠性震嫉。
Hadoop HDFS是一個(gè)經(jīng)歷了長(zhǎng)時(shí)間考驗(yàn)且具有高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)森瘪,已經(jīng)能夠?qū)崿F(xiàn)海量數(shù)據(jù)的高可靠性存儲(chǔ)。同時(shí)基于云上的特性票堵,也可以在OSS等服務(wù)上進(jìn)行數(shù)據(jù)的額外備份扼睬,來(lái)達(dá)到更高的數(shù)據(jù)可靠性。
2. 服務(wù)容災(zāi)
Hadoop的核心組件都會(huì)進(jìn)行HA的部署悴势,即有至少2個(gè)節(jié)點(diǎn)的服務(wù)互備窗宇,如YARN,HDFS特纤,Hive Server军俊,Hive Meta,以保證在任何時(shí)候叫潦,其中任何一個(gè)服務(wù)節(jié)點(diǎn)掛掉時(shí)蝇完,當(dāng)前的服務(wù)節(jié)點(diǎn)都能自動(dòng)的進(jìn)行切換,保證服務(wù)不會(huì)受到影響。