天天看點

阿裡巴巴飛天大資料平台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。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性
  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可實作工作流的排程。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性
  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。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性
  1. EMR半托管形态

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

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性
  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節點上的工作壓力。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性

二、産品新特性

  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和單盤吞吐性能上都有較大幅度的提升。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性
  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兩個版本也會進行更新更新,保證使用者平穩使用。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性
  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相應付費版軟體,就可以實作資料血緣跟蹤,表和相應列的源資料資訊的檢視。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性

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上,實作開箱即用的效果。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性

4、EMR資料遷移

EMR正在與阿裡雲上另一款災備産品HDR-BD進行內建實作資料災備和遷移。目前支援社群Hadoop2.7.x/3.1.x,HDP,CDH版本。Source和Target叢集雙活,實作HDFS和Hive資料的遷移,同時支援遷移到OSS上。

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性

三、Road Map

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

阿裡巴巴飛天大資料平台E-MapReduce 4.0最新特性

繼續閱讀