阿里雲 EMR最佳實踐和容災

阿里雲EMR(Elastic MapReduce)是一項 Web 服務,簡化了大數據處理,提供的大數據框架可讓您輕鬆、高速、經濟、安全、穩定地處理大數據,知足如日誌分析、數據倉庫、商業智能、機器學習、科學模擬等業務需求。前端

 

一. 最佳實踐算法

 

1. 混合使用包年及按需計費,節約成本安全

 

數據都存在熱、冷的差別。通常建議把冷數據存放在OSS中,熱數據放在本地HDFS中。晚上00:00-06:00按需運行,運行完成後釋放集羣,節約成本。晚上ECS水位低,比較容易申請到大集羣。架構

 

 

7fb1c5c8f5bb15e421632925177ad432fa0a39d6
 
 
 

服務端會把這些信息存儲在OSS中,再啓動E-MapReduce中的Hive腳本分析這些數據,如:統計pv和uv,再把每一個連接的訪問狀況存儲在RDS中,最後經過報表系統展現。    
框架

 

39333fab351314fa71adb6528c7d226235857025

 

3. 離線處理+在線服務進行多維度信息統計運維

 

好比考慮到這樣的一個場景,車載APP會實時上傳汽車的物理指標,包括車速、發動機功耗、電池電壓等,這些信息首先存儲到EMR Hbase中,再啓用E-MapReduce的hive或者mapreduce或者spark離線分析,按照城市的粒度,即分析出來某個城市某個時段的車輛出行率、出行里程平均數、車速平均值、平均油耗、出行車輛數、平均怠速時間、劇烈駕駛次數,這些信息又存放到Hbase中作成服務。機器學習

 

ea9db32590055b016f8c7a0f1c071e6247673d17

 

4. 離線處理-推薦(機器學習)分佈式

 

 

用戶會對視頻發生點贊、喜歡、收藏、分享、觀看等行爲,將用戶對某個視頻產生同一行爲的用戶進行關聯分析建模。而後當某個用戶看了某個視頻,而相關聯的好友用戶沒有看過該視頻的話,就會在該用戶觀看視頻播放器的下方進行推薦。整個過程用了協同過濾算法。主要是spark mllib分析oss中用戶的日誌,存放在rds中。oop

 

0c863bb4105cc1c53ddb383b3bbbe2a7aac1c463

 

5. 實時處理-監控報警性能

 

統計數據從多個維度來展示當前服務質量,例如各類請求狀態碼佔比,請求接口占比,每種請求的狀態碼佔比,請求延時分佈,每種請求的時延佔比。最終結果能夠呈現給運維人員或者開發人員,用來進一步保證服務質量和優化服務性能。若是出現一些異常狀況,則報警給運維人員或者開發人員。主要的架構就是使用了spark streaming接受logservice實時推送過來的日誌,分析完成後,實時存放到rds中,出現問題時監控報警系統會觸發報警。

 

d7e1a0049b8c0f65021bd64a061d131672021381

 

6. 在線離線混合

 

 

例如一個有用戶瀏覽的網站,日誌信息用logService接收。一方面存入到OSS中,晚上啓動E-MapReduce離線分析,好比,頁面的UV、從A頁面到B頁面的調轉,提供運營同窗數據化支持。另外一方面,用戶在不斷瀏覽過程當中,咱們但願根據瀏覽狀況實時自動推薦用戶內容,E-MapReduce spark Streaming就實時接收 logService的數據,再結合spark mllib的算法,自動算出推薦內容,存儲到RDS中,前端用戶瀏覽時推薦的內容會實時發生變化。

35f5cdb9b285d3c14c4d822aef92659a6883c8f1

 

二. 容災設計

 

1. 數據容災

 

Hadoop分佈式文件系統(HDFS)將每個文件的數據進行分塊存儲,同時每個數據塊又保存有多個副本(系統默認爲每個數據塊存放3個副本),儘可能保證這些數據塊副本分佈在不一樣的機架之上(在大多數狀況下,副本系數是3,HDFS的存放策略是將一個副本存放在本地機架節點上,一個副本存放在同一個機架的另外一個節點上,最後一個副本放在不一樣機架的節點上)。

 

HDFS會按期掃描數據副本,若發現數據副本發生丟失,則會快速的進行數據的複製以保證副本的數量。若發現節點丟失,則節點上的全部數據也會快速的進行復制恢復。在阿里雲上,若是是使用雲盤的技術,則在後臺每個雲盤都會對應三個數據副本,當其中的任何一個出現問題時,副本數據都會自動進行切換並恢復,以保證數據的可靠性。

 

Hadoop HDFS是一個經歷了長時間考驗且具備高可靠性的數據存儲系統,已經可以實現海量數據的高可靠性存儲。同時基於雲上的特性,也能夠在OSS等服務上進行數據的額外備份,來達到更高的數據可靠性。

 

2. 服務容災

 

Hadoop的核心組件都會進行HA的部署,即有至少2個節點的服務互備,如YARN,HDFS,Hive Server,Hive Meta,以保證在任什麼時候候,其中任何一個服務節點掛掉時,當前的服務節點都能自動的進行切換,保證服務不會受到影響。

相關文章
相關標籤/搜索