當前位置:
首頁 > 科技 > 專訪Intel程浩:淺談Apache Spark框架性能調優札記

專訪Intel程浩:淺談Apache Spark框架性能調優札記

【編者按】每個人的成長曲線不同,有的人在研究生之時就已有相當知名的產品和框架,從而在接下來的工作中一路順風順水,有的人缺需要經歷一個又一個的坑才能成長,不管是前者的聰明高效,還是後者的笨鳥先飛,他們都是在邁著腳步不斷地向前。不妨停下腳步看下一些同行,以激勵自己更好地前行。CSDN與你相約SDCC 2017·深圳站講師。

2017年6月10-11日,SDCC 2017將在創新之都深圳火熱開啟。據悉,英特爾軟體與服務部大數據研發經理程浩將在SDCC 2017·深圳站之大數據技術實戰峰會帶來題為《Apache Spark大數據計算性能調優之部署最佳實踐》的分享。更多峰會嘉賓和議題請點擊這裡。

以下為正文:

【嘉賓】程浩,英特爾軟體與服務部大數據研發經理。Intel亞太研發中心Spark團隊研發經理,Apache Spark活躍開發者,致力於Apache Spark框架在Intel平台架構上的性能分析與優化。

CSDN:請介紹下您和您所在的團隊,以及目前的工作重點。

程浩:我們團隊隸屬於英特爾軟體與服務事業部系統技術優化部門,早在2012年就開始與UC Berkeley的AMPLab實驗室合作交流,在Spark開源生態圈中保持密切合作,在過去的幾年中,我們為Apache Spark生態圈組件提交了大量的功能、性能優化代碼,並輔助國內外公司在實際大數據生產環境中落地Spark應用,隨著Apache Spark日趨成熟穩定,逐漸為大數據處理領域內最廣泛使用的框架之一,我們團隊也把注意力放到研究最佳的技術方案,包括Spark軟體本身的改進,也包括採用英特爾的硬體及其軟體加速庫來提高Spark的運行效率,為Spark用戶在英特爾的硬體架構平台上提供最佳性價比技術解決方案支持。

CSDN:Spark框架在英特爾平台上的融合,在架構上具有怎樣的特點?有哪些具體的適用場景?

程浩:英特爾的軟硬體平台在數據中心部署佔據了很高的比例,隨著Spark功能越來越完備,很多公司都採用了Spark作為其最主要的大數據計算引擎之一,但是Spark框架誕生之初,並非為英特爾的硬體平台量身打造,如何充分挖掘現有英特爾架構平台的計算性能,優化Spark應用的執行效率,對於提升硬體資源利用率,降低成本有非常大的效益。

Apache Spark開源社區公平性原則很強,對於特定硬體廠商的優化技術方案很難合并到Spark的主幹代碼中,而英特爾對其自身的硬體平台往往提供了很多軟體驅動和加速庫,這些性能優化在單機基準測試中體現非常明顯,我們團隊做了大量將Spark和英特爾相關加速庫集成的工作,並通過授權相關優化代碼給關鍵客戶、走第三方大數據發行商(比如Cloudera)或者開源相關功能代碼等方式,把我們的優化方案提供給Spark終端用戶。另外,英特爾的硬體技術發展推陳出新非常快,新的硬體技術對於傳統的軟體架構設計會產生很大影響,比如,通常我們認為磁碟是比較慢的設備,但是英特爾的最新一代SSD將提供極大的吞吐率、超高的IOPS,顛覆了現有的軟體框架設計時的前提假設,這些軟體架構需要大量改寫甚至重寫才能發揮出英特爾硬體的優勢,不僅僅是存儲,英特爾在內存、網路、計算晶元等硬體設備上也有大量的創新和新產品,我們團隊和英特爾內部相關技術專家密切合作,做了一些前瞻性的原型開發,希望對於未來的大數據軟體架構設計產生積極影響。

CSDN:影響Spark性能的因素有哪些?有哪些優化層面?您認為在Spark性能優化中應堅持哪些原則?

程浩:Spark是一款非常優秀的分布式內存計算框架,涉及到網路,磁碟,內存,軟體演算法實現,作業調度策略等,影響Spark應用程序性能的因素也往往是多方面的。比如數據調度本地性對於網路負載會有很大影響,分布式環境下任務調度均衡性、任務調度的粒度、磁碟和內存的設置,甚至用戶程序自身有沒有充分考慮現有的軟硬體架構配置等,往往需要具體問題具體分析。

通常來說,我認為Spark性能優化基本原則是分析先行,即通過各種性能分析工具包括Spark自帶的作業實時運行狀態監控工具,先宏觀分析Spark應用的瓶頸出現在哪裡(網路、磁碟、CPU或者分布式作業調度均衡、Java GC等),或者壓根沒有出現任何瓶頸(作業調度的並行度設置太高,或者作業量太小等),有必要時可以使用比如Visual VM或者VTune等工具和程序日誌,分析程序執行時單機熱點。Spark集群和應用提供了大量的配置參數,需要根據性能監控分析,進而有針對性的調整Spark集群配置,Spark應用配置,直至應用代碼優化甚至是Spark自身的軟體代碼優化。當然一方面需要對於Spark框架的基本原理有一定理解,甚至是閱讀Spark的相關代碼,另外也需要一定的性能監控分析工具使用的經驗。

CSDN:不同的業務場景和數據情況,需要對Spark作業進行多方面的調節和優化。硬體調優在Spark性能調優中扮演了什麼樣的角色?具體調優內容有哪些?

程浩:通常為了Spark應用能達到最好的性能,需要通過修改各種軟體參數配置,設置程序代碼等手段,確保程序運行時充分利用計算機系統硬體資源,讓應用的瓶頸落腳到硬體能力的限制上來,比如CPU的利用率保持在80%-90%以上,磁碟或者網路吞吐率已經到達理論的上限帶寬等,在這種情況下,我們認為應用程序的性能基本已經到最佳狀態了。此時,若想更進一步提升應用性能,升級受限的硬體設備或許是唯一選擇。比如對於Spark SQL或者ETL類作業而言,磁碟的吞吐率可能是最大的性能瓶頸,只能通過升級磁碟來達到提升性能目的。

硬體調優不像軟體,手段非常有限也不透明,這裡的調優只是體現在對現有硬體設備的升級,或者新的大數據計算集群硬體採購過程中,可以採用的一些方法來度量或者分析性價比,讓CPU、網路、磁碟和內存等硬體配置更加合理。

CSDN:在釋放硬體性能、監控硬體性能發揮方面,有怎樣的調優手段?能否分享一些典型的Spark實踐案例?

程浩:選擇合適的監控工具,性能分析是第一步,更多細節,我會在SDCC的分享中做詳細介紹,歡迎大家來現場或者和我郵件交流。

CSDN:您在Spark領域深耕多年,可以分享一些Spark應用和實踐的經驗嗎?

程浩:Spark提供了一套非常簡單易用的API集合,讓開發人員可以很快上手,並關注於業務代碼實現,和其它軟體庫的API一樣,使用這些API可以非常靈活,而不用關心底層實現細節,最後程序還能透明的被放到大數據平台中執行。Spark開源社區為了達到易用性目的做了大量的開發工作,即便如此,實際應用場景可以非常複雜,大數據計算可能只是其中一個環節,還有各種集群資源分配管理、多作業調度管理、多租戶、安全性、日誌管理、存儲等需求,很多公司甚至擁有獨立的開發運維團隊來負責大數據平台的日常程序監控和管理,一些大數據獨立發行廠商也提供相關解決方案。

Spark應用實踐,複雜在滿足業務需求的同時,還能長時間穩定運行和調度,並和其它的大數據組件配合工作,需要開發或者運維技術人員對於計算機基礎知識、大數據生態圈組件有比較深刻理解。當然,應用程序自身代碼的健壯性、可擴展性,以及良好的應用架構,是最佳實踐的基礎,不單單對於Spark應用實踐,對於任何程序開發實踐經驗都是適用的。

CSDN:您最期待在SDCC 2017·深圳站大會上看到哪些內容?

程浩:希望能看到更多大數據在垂直領域內的應用分享,也希望能和相關技術專家交流心得體驗,了解大數據應用中的痛點和難點,以及對於大數據框架技術上有哪些重要的潛在需求。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

開發者如何進行快速學習
開源盛會LinuxCon即將火熱來襲
架構+大數據熱點盡攬,帶你細數SDCC 2017·深圳站八大不容錯過的理由
數據科學家必知的21個命令

TAG:CSDN |

您可能感興趣

Spring Cache 框架
Electron 軟體框架漏洞影響眾多熱門應用:Skype、Signal、Slack、Twitch……
淺談Metasploit框架中的Payload
AI 框架使用排行:TensorFlow、Scikit Learn、IBM Watson、Spark-MLib、Keras
JFinal框架學習——EhCachePlugin
Python Web 應用程序 Tornado 框架簡介
django框架:HttpResponse對象
Wasserstein is all you need:構建無監督表示的統一框架
學界 | Wasserstein is all you need:構建無監督表示的統一框架
圍觀丨Google 的 Mobile UI 框架 Flutter Preview 1 發布!
筆記應用GoodNotes將推出macOS版本,基於Project Catalyst框架
powershell滲透框架
RPC框架實踐之:Apache Thrift
基於Asyncio的Python微框架:Quart
AspectJ 框架 spring 實現 AOP?
Python爬蟲框架之pyspider
Jmeter+Ant+Jenkins介面自動化測試框架搭建for Windows
Scrounger:iOS和Android移動應用程序滲透測試框架
SpringMVC,Spring,Hibernate框架自動生成器
python:web框架Falsk知識點總結