天天看點

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

本場視訊位址: 助力雲上開源生态 - 阿裡雲開源大資料平台的發展 PPT資料: 本次分享的内容主要分為四個部分:

  1. 發展曆程
  2. 雲上現狀
  3. 雲上開源生态的最佳實踐
  4. 開源大資料平台的發展展望

一、發展曆程

在2015年,阿裡巴巴剛開始做開源大資料平台的時候,擺在面前的有三種選擇,分别是使用開源的Hadoop體系、CDH和HDP,以及當時的ODPS(現在的MaxCompute)。在那個時候,在大洋彼岸的AWS有一款大資料産品叫做EMR,是以阿裡雲當時也希望借鑒AWS的經驗來做開源大資料平台,希望将大資料能力和雲原生能力進行深度結合。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

阿裡雲在2015年6月份的時候就開始研發自己的開源大資料平台并實作了第一個“鏡像+腳本”的版本,這個版本可以實作在最短的時間内将Spark環境搭建起來,而且這個版本很快上線并且釋出到GitHub上。當時使用的API很像現在的編排服務,但是這樣服務的缺點是隻能一次性搭建,是以維護起來非常麻煩。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

在2015年11月份,阿裡雲正式将E-MapReduce獨立雲産品推出市場。大家都知道MapReduce的思想來自于谷歌,其代表了大資料理論,是以阿裡巴巴将這款大資料産品命名為E-MapReduce,使得大家看到名字就知道其産品的主要作用。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

阿裡雲E-MapReduce上線之後經過四年的時間發展到現在,E-MapReduce 4.0即将釋出版本,并且在新版本中将會支援Hadoop 3.0以及其他新功能。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

發展到今天,阿裡雲E-MapReduce将會為開源生态提供基礎平台,在這個平台上能夠讓大家選擇各種各樣的開源産品,并且不會限制大家使用自定義的能力。此外,阿裡雲E-MapReduce也希望能夠将阿裡巴巴整個雲智能平台的計算能力輸出給大家,為大家提供雲原生能力和彈性排程能力。未來,E-MapReduce會陸續內建各種開源技術和能力,并且會在這些開源技術之上為大家提供更好的優化的技術,一方面提高穩定性,另外一方面也提升性能,并且也會進行能力的适配。最後一點就是實作雲原生的結合,大家使用開源或者自建的大資料方案往往難以和雲原生技術或者基礎設施進行結合或者難以獲得較高的性能,是以阿裡巴巴希望通過E-MapReduce能夠更好地和雲原生技術進行結合。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

總結阿裡巴巴E-MapReduce的發展曆程,最開始就是實作了一個AWS EMR Like的産品,運作一年之後發現AWS的純動态方式并不适合國内的場景,是以實作了第一次調整,更加重視常駐叢集,并且強化作業合度排程能力。經過第一次調整之後,阿裡雲發現E-MapReduce的能力還是無法滿足需求,是以在第二次調整中提供了完善的Web控制台能力,并且支援了叢集的高可用和高安全,也在外圍支援了Impala、Kafka、Druid等各個場景下的軟體,進而可以更好地支援各個業務場景。除此之外,還支援了深度學習的場景,将經過阿裡巴巴自身優化的機器學習算法提供到平台之上。如今,E-MapReduce仍在繼續調整,希望能夠提供更加完善的大資料平台,更加智能化的服務能力,并且使得底層更加輕量,也使得計算平台整體能力能夠對外輸出出去。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

二、雲上現狀

雲上的生态概覽

下圖展示了阿裡雲的大資料生态概覽。在資料來源方面,開源方面有HDFS和Kafka,阿裡巴巴則提供了OSS、SLS、RDS以及消息隊列等服務。所有資料可以通過開源的Hive、Spark、Flink、Rresto、TensorFlow以及阿裡巴巴的MaxCompute、Flink/TensorFlow等服務進行計算,并且還可以與阿裡的自身體系如DataWorks、DataV以及QuickBI進行融合。目前,雲上大資料方案可以認為是半托管的服務,阿裡雲能夠幫助客戶進行運維并且提供運維支撐服務。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

多樣的存儲選擇

在阿裡雲上,大資料存儲主要有三種選擇,分别為Hadoop HDFS、Alibaba HDFS和OSS。Hadoop HDFS有三種存儲方式,EBS雲盤存儲資料可靠,但是背景有多個資料副本,是以成本較高,同時通過網絡擷取資料性能較低;D1本地磁盤以及I1/I2本地詞盤性能比較高,成本也比較低,但是資料容易丢失,并且運維成本較高。另外一種選擇是Alibaba HDFS,這種方式資料可靠,成本中等,并且資料全部通過網絡傳輸,沒有本地計算。OSS标準存儲經過阿裡巴巴的改造和優化之後可以直接在Hadoop中進行讀寫,這就是所謂的NativeOSS,NativeOSS存儲資料可靠,成本較低,并且通用性比較好,但是性能比較低。是以,進一步在NativeOSS上進行了強化,實作了JindoFS,JindoFS做到了資料可靠,成本較低,性能高并且通用性較好,但是需要額外的存儲成本。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

彈性實踐

雲上做計算需要充分發揮出彈性能力,否則就無法發揮出雲的真正價值。而為了發揮出雲彈性能力,各大雲産商的所有大資料能力都會有Master節點以及一組工作節點Task,Task節點隻進行計算但是不會進行資料存儲,是以在雲上執行計算任務時,Task節點可以進行彈性伸縮,還可以通過Stop Instance來降低成本。在計算任務的高峰期購買Task節點,當高峰期過去之後,就可以釋放Task節點。阿裡雲還為客戶提供了一套伸縮機制,既可以按照時間伸縮,也可以按照負載伸縮。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

叢集架構

下圖展示的是阿裡雲比較推薦的雲上叢集架構。如圖中左側所示的是建立的Hadoop叢集,其底層全部使用OSS做資料存儲,而在OSS之上存在幾個獨立的計算叢集,比如Hive、Spark以及Presto等,而且這些叢集全部都是靈活可銷毀的。右側同樣建立Hadoop叢集,而外側則提供了Gateway以及Client來接受請求。此外,很多客戶可能在雲上沒有使用OSS或者混合使用OSS和HDFS,借助這種叢集架構,可以幫助使用者跨越資料存儲的障礙。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

三、雲上開源生态的最佳實踐

存儲的選擇和優化

在2015年的時候,想要在阿裡雲上部署大資料平台隻有雲盤存儲可以選擇,比如使用SSD等高效存儲盤,是以這樣的成本會非常高。到2017年左右,阿裡雲智能團隊和ECS團隊合作做了本地盤機型,後來還和ECS團隊合作做了D1,并且适配了一些國内更能夠适應的場景。在2016年,E-MapReduce實作了和OSS的結合,當時因為帶寬限制,是以使用的客戶較少。到如今,針對之前的發展和合作經驗,E-MapReduce可以選擇使用JindoFS、Alibaba HDFS等進行存儲。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

IaaS層更新

為了讓客戶更好地使用E-MapReduce,IaaS層也經曆了多次更新。第一代是D1和I1,第二代是D2和I2,提供了更高的網絡帶寬,本地磁盤提供了極高的性能,但同時也帶來了運維成本的增加。而通過磁盤的熱更換,提供了更好的體驗整套的運維的支援鍊路,并且提供了整套硬體的監測、預警、通知、更換等操作完成主動運維流程。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

存儲通路優化方案JindoFS

JindoFS的目的在于讓大家更好地使用存儲與計算分離的架構。在JindoFS的架構之下,所有資料都會存儲在OSS上面,所有的計算都放在動态叢集上面進行,并且可以随時進行計算伸縮,JindoFS為客戶提供了高性能的資料存取能力,和高成本效益、無限擴充的彈性存儲能力。這裡面臨的最大挑戰就是OSS和計算叢集之間的網絡帶寬,而JindoFS方案中通過本地緩存技術大大降低了時延,提升了性能效率。同時,因為JindoFS采用了基于存儲計算分離的架構,是以客戶不用擔心緩存資料的丢失問題。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

更多的産品的融合和增強

阿裡雲E-MapReduce融合了更多的産品,比如Spark、Flink、TensorFlow、Elaticsearch、Dataworks等,并在這些産品的基礎之上做了增強。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

四、開源大資料平台的發展展望

阿裡雲E-MapReduce希望基于平台實作更多的方案,希望能夠更好地賦能客戶的業務場景。比如在實時數倉方案和Spark Streaming SQL中,實作了将業務資料庫的資料實時同步到kudo中,可以實作對業務資料庫中的資料進行實時OLAP分析的能力。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

未來,EMR将會實作與K8S的融合,希望能夠幫助客戶更好地節約成本,讓使用者在阿裡雲内部可以騰挪自己的資源來完成各種工作,支援客戶在業務低峰時将K8S節點加入到Hadoop節點中作為計算補充,在業務高峰時将叢集還給業務,這樣在不增加額外成本的情況下增加計算能力,更加充分地利用資源。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

很多的使用者希望實作多雲和混合雲,是以阿裡巴巴希望為客戶提供線上下IDC用法不變的情況下,将冷資料通過專線傳輸到動态存儲,并且使用E-MapReduce等進行動态賦能和線下叢集結合起來使用的能力,并且與此同時充分利用線下和線上的能力。

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

阿裡巴巴開源大資料技術團隊成立Apache Spark中國技術社群,定期推送精彩案例,技術專家直播,問答區數個Spark技術同學每日線上答疑,隻為營造純粹的Spark氛圍,歡迎釘釘掃碼加入!

助力雲上開源生态 - 阿裡雲開源大資料平台的發展

繼續閱讀