雲計算

阿里巴巴飛天大數據平臺E-MapReduce 4.0最新特性

以下內容根據演講視頻以及PPT整理而成。
本次的分享主要圍繞以下三個方面:
一、EMR產品概述
二、EMR產品新特性
三、EMR Road Map

一、產品概述

  1. E-MapReduce(EMR)是什麼
    E-MapReduce是阿里雲上雲原生的開源大數據平臺,一款利用開源大數據解決用戶分析問題的大數據產品。在2016年6月,E-MapReduce開始公測,2016年9月開始商業化,目前為止E-MapReduce已經商業化三年多的時間。在2019年8月,阿里發佈了E-MapReduce (EMR)敏捷版。在2019年10月,阿里巴巴將發佈EMR4.0版本。EMR4.0版本的Hadoop將會升級到3.1.x。

image.png

  1. EMR產品特性:
    EMR產品特性主要展現在以下三個方面。

100%開源組件:EMR產品所使用的大數據組件為100%開源組件。對用戶來說,學習成本和遷移成本都相對較低。此外,EMR會根據社區的進度和Bug Fix進行升級,保證產品是根據社區持續升級,實現較好的用戶體驗。還有,EMR對Spark、Hadoop、Kafka等組件均有性能和應用性的增強。以Spark為例,EMR比較早的集成了Spark AE,推測執行的自動化和特性,同時包括基於Spark來進行物化視圖的自研的產品功能。
成本優勢:EMR產品相對於用戶自建Hadoop更具有成本優勢。首先,EMR集群支持彈性伸縮。此處的彈性伸縮指兩方面。比如可以根據一個時間點,大部分用戶在用開源大數據Hadoop時在每天晚上12點定時跑一個較大的日報任務,而日報任務可能並不需要全天都跑,可能在早上就會跑完。此時使用彈性伸縮有利於節省計算資源。同時也可以採用按負載伸縮的方式,設置YARN Root的隊列的某一個指標進行伸縮。用戶可以根據自己實際的application排隊情況及container分配的情況進行伸縮。其次,EMR支持OSS作為數據存儲系統。除HDFS之外可以使用OSS,將HDFS的schema改為OSS路徑直接讀寫OSS。相對來說,可以實現用戶的數據分層存儲,當用戶的熱數據放在HDFS裡,冷數據則可以放在OSS中。同時實現OSS的生命週期的管理。比如說相對溫數據放在一個標準型裡,但如果用戶的數據是一年前或者幾年前的數據,則可以放到歸檔型或者低頻型的更便宜的OSS存儲中。第三個特性是EMR在彈性伸縮的基礎上同時支持競價實例。ECS提供了一種比較便宜的實例類型,即競價實例。用戶可以自己出一個價格來實現成本節省。考慮到數據可靠性的影響,競價實例只能用在計算節點上,若上面有HDFS的數據存儲,則不允許使用競價實例或者彈性伸縮。最後,EMR可以通過作業來拉起一個臨時集群。當用戶只是想要跑一個大數據的任務,可以通過集群模板設置集群的配置。當作業被觸發時,EMR會先創建好臨時集群,作業執行完畢,臨時集群會被釋放掉。通過臨時集群的方式實現比較靈活的集群創建和管理。
企業級特性:EMR採用了MIT Kerberos和Apache Ranger實現用戶鑑權和用戶權限管理。同時提供了EMR APM實現集群和作業的監控。

  1. EMR開源軟件棧
    下圖是EMR目前支持的開源軟件棧。最底部是EMR的Docker和ECS。通過ECS是目前在公有云上的主要形態,專有云可以通過Docker的方式,在ECS之上部署一個EMR Agent,主要負責集群管理和集群運行數據的採集,檢測集群端前是否出現問題。數據導入時EMR提供了Sqoop,使用開源的DataX組件、Flume組件或SLS將數據導入到EMR上。數據存儲這一塊EMR支持HDFS和OSS。在OSS之上又開發了jindoFS,jindoFS可以用OSS作為數據湖的概念,通過jindoFS catch的方式做數據加速,提升OSS讀取數據的效率。EMR最新版本支持Kudu和Delta Lake,幫助用戶有效的構建實時數倉。用戶利用Kudu或Delta Lake+流式計算,如Spark或Flink實現實時用戶畫像、實時推薦等功能。資源調度方面,EMR目前主要使用YARN。計算引擎方面,EMR提供了較多的計算引擎,如Spark、Flink、TensorFlow、Storm、Impala和Presto等。同時在頂部的應用層面提供了NoteBook、Jupyter和Zepplin以及開源的Hue。EMR是一個半托管的形態,用戶自建的系統也可以無縫遷移。阿里自研的EMR-Flow可實現工作流的調度。

image.png

  1. EMR集群特性
    目前EMR支持五種集群類型。目前五種集群類型的購買是獨立的,在購買集群的首頁可以選擇一個集群類型,如Hadoop,Kafka,或者ZooKeeper集群。

Hadoop大數據平臺:一般用戶都會購買一個Hadoop平臺,然後再實現批計算、流式計算、數據倉庫、Ad hoc查詢、NoSQL和HBase等。
Kafka:若用戶希望實現一個半托管的Kafka,可以購買EMR Kafka系統實現消息系統。
TensorFlow:TensorFlow目前在深度學習、機器學習方面非常受歡迎。EMR可以實現TensorFlow,既On YARN的執行和TensorFlow On Spark的運行。
Druid:EMR對於實時OLAP有一個獨立的集群類型druid。
ZooKeeper:在集群功能較大的情況下,用戶可以購買獨立的ZooKeeper集群實現分佈式協調系統。如Kafka、Druid、HDFS、YARN或HBase等都需要ZooKeeper。
image.png

  1. EMR半托管形態
    如下圖,EMR目前是半托管形態。用戶可以通過ssh login的方式登錄ECS節點,在ECS節點上部署EMR的服務,如工作流調度、智能診斷、彈性伸縮、資源池等功能。EMR有更低的遷移成本。如果用戶是Hadoop基礎體系,可擁有更低的遷移成本和學習成本。在用戶人力資源不充沛的情況下可以通過EMR有效實現運維成本的節省。

image.png

  1. EMR集群節點類型
    EMR集群節點類型主要分以下四種。

Master節點:Master節點部署了HDFS Name Node和YARN Resource Manager。此外,相應的HDFS、YARN、Hive、HBase等組件均已實現了HA機制。
Core節點:Core節點主要部署YARN NodeManager和DataNode。Core節點不支持彈性伸縮。
Task節點:用戶可以使用Task進行彈性伸縮或者使用競價實例的購買方式。如果用戶有深度學習需求,可以通過YARN調度GPU資源,同時也可以在Task節點選擇購買GPU實例。
Gateway節點:Gateway節點部署Haddop、Spark、Flink等組件的客戶端,支持部署不同部門採用不同的參數和配置。因為用戶可能會在不同客戶端採用不同配置,從而實現用戶隔離,用戶可以購買Gateway節點實現資源配置上的隔離,同時減輕Master節點上的工作壓力。
image.png

二、產品新特性

  1. EMR基礎能力升級
    計算能力升級:阿里雲剛剛發佈了第六代企業級實例,既CPU從Skylake升級到Cascade Lake,睿頻從2.7GHz加速提升到3.2GHz。由下圖可發現,相對於第五代企業級實例,第六代企業級實例CPU性能和內存讀寫性能都有顯著提升。阿里雲在2019年九月底上線第六代企業級實例,提供更高的計算性能和更低的產品價格,將技術的紅利讓給用戶。

存儲能力升級:EMR已支持ESSD雲盤。ESSD雲盤全稱是企業級SSD雲盤。ESSD雲盤的單盤IOPS有較大提升,在EMR Kudu,HBase等場景下有較好的表現和性能。ESSD雲盤分為PL1、PL2、PL3三種,目前EMR支持PL1級的ESSD雲盤,從性能上PL1級已經基本滿足用戶需求。下圖右下對比圖分別是ESSD雲盤和SSD雲盤在塊存儲方面官網的標稱的性能指標。通過對比圖可以發現ESSD在單盤IOPS和單盤吞吐性能上都有較大幅度的提升。
image.png

  1. EMR軟件棧升級
    EMR Hadoop目前支持Hadoop2.7.2和Hadoop2.8.5兩個版本,社區EMR3.0版本逐漸成熟之後EMR4.0會將版本升級到Hadoop3.1.2版本。同時,EMR 4.0 新增支持Kudu1.1.0和Delta Lake 0.3。EMR4.0中Apache Flink升級至1.8.1。在Apache社區Flink升級至1.9.0或1.9.1後,EMR會再考慮Apache Flink升級。EMR4.0支持OpenLDAP。如果用戶使用的是OpenLDAP,則可以進行平滑遷移。下圖右側是當前EMR已經支持的一些版本,這些版本在EMR 4.0發佈後會實時保持和社區更新同步,當前用戶已經購買的Hadoop2.7.2和Hadoop2.8.5兩個版本也會進行升級更新,保證用戶平穩使用。

image.png

  1. EMR生態集成
    EMR+DataWorks:EMR作為一個雲原生軟件,在雲上有一系列生態集成,如OSS的集成和ES的集成。一部分用戶同時使用了EMR和Elastic Research或雲Elastic Research。EMR已經集成了Elastic Research組件,可實現數據的打通。如下圖左側,創建DataWorks項目時選擇計算引擎,之前只能選擇Maxcompute和實時計算,現在多了兩個選擇,一個是EMR,另一個是剛開始公測的交互式分析。用戶在創建DataWorks作業時,可以將作業運行在一個已經存在的Hadoop集群上。在寫的時候只要相應的輸入accessKey和accessID,輸入EMR的集群id,則可以將這個任務調度到EMR集群上。下圖右側展示了若用戶目前以EMR作為計算引擎,只要用戶購買了DataWorks相應付費版軟件,就可以實現數據血緣跟蹤,表和相應列的源數據信息的查看。

image.png

EMR+PAI:生態集成的另外一方面是阿里雲上非常受歡迎的深度學習平臺PAI。目前大數據+AI是一個非常重要的場景。EMR已經能夠實現TensorFlow On YARN和 TensorFlow On Spark,可以通過YARN實現對TensorFlow作業的調度,作業可以跑在CPU以及GPU上。同時,TensorFlow也可以跑在Spark RDD上進行計算。EMR+PAI集成主要體現在將PAI這一個企業級分佈式的深度學習計算框架部署在EMR上。因為PAI TensorFlow完全兼容於開源的TensorFlow,同時在顯存和分佈式通信方面有深度優化。另一方面,PAI的計算模型PAI-FastNN集成了11種經典的神經網絡模型,能夠跑在EMR上,實現開箱即用的效果。
image.png

4、EMR數據遷移
EMR正在與阿里雲上另一款災備產品HDR-BD進行集成實現數據災備和遷移。目前支持社區Hadoop2.7.x/3.1.x,HDP,CDH版本。Source和Target集群雙活,實現HDFS和Hive數據的遷移,同時支持遷移到OSS上。
image.png

三、Road Map

EMR在未來幾個月的主要工作首先是在本地盤實例運維。大部分用戶會使用ECS的大數據實例。大數據實例最大的特點是存儲成本相對較低,對於數據量比較大的用戶是一種比較好的成本優化方式。對於大數據來說,幾千或者幾萬塊盤在管理時如果出現單盤的損壞,對作業的穩定性會產生比較大的影響。EMR的主動運維能力主要體現在用戶單鍵點擊便可實現對磁盤的隔離,確定對壞盤的較為安全的處理方式。此外,EMR與PAI和DataWorks會有比較深入的融合,構建開源的大數據AI平臺以及開源大數據數據倉庫。在未來,EMR同時會基於Kudu,Delta以及目前較為流行的Flink,Spark Streaming等計算框架實現實時數倉的構建。在2019年底或2020年初,EMR會推出第二代企業級大數據實例。第二代企業級大數據實例的計算性能會大幅提升,同時成本會持平或小幅節省,將更大的成本優化的空間貢獻給客戶。
image.png

Leave a Reply

Your email address will not be published. Required fields are marked *