您的位置:首頁>科技>正文

Intel程浩:Spark SQL優化與硬體選型

5月12日, 我們迎來了2017第八屆中國資料庫技術大會(DTCC2017)第二天。 本屆大會以“資料驅動 價值發現”為主題, 彙集來自互聯網、電子商務、金融、電信、政府、行業協會等20多個領域的120多位技術專家, 共同探討Oracle、MySQL、NoSQL、雲端資料庫、智慧資料平臺、區塊鏈、資料視覺化、深度學習等領域的前瞻性熱點話題與技術。

大會共設定2大主場和21個技術專場, 吸引了5000多名IT人士參會, 為資料庫人群、大資料從業人員、廣大互聯網人士及行業相關人士提供最具價值的交流平臺。 今天下午, 我們來到了“資料庫性能優化”專場, Intel亞太研發中心Spark團隊研發經理程浩進行了題為《Spark SQL優化與硬體選型》主題演講。

▲Intel亞太研發中心Spark團隊研發經理, 程浩

嘉賓介紹:程浩, Intel亞太研發中心Spark團隊研發經理, Apache Spark活躍開發者, 致力於Spark框架在Intel平臺架構上的性能分析與優化。

在Spark大資料應用中, 如何讓硬體得到更好的效能發揮和更高的性價比一直是我們關心的話題。

如何收集硬體利用率和Spark應用程式性能瓶頸分析;當新硬體採購時, 如何驗證怎樣的硬體設定對Spark應用可以有最佳的效能或者最好的性價比。

在這個主題中, 程浩為我們展示了不同特性的典型Spark應用的性能分析和調優手段, 揭示如何釋放硬體資源, 監控硬體性能發揮, 並在此基礎上, 測試不同硬體設定諸如記憶體、網路、磁片、CPU選型, 對於Spark大資料應用程式性能的影響, 指導運維人員決策購買或者升級新的硬體零部件時候, 可能可以採取的測試驗證方法。

此外, 程浩還比較了Spark應用程式在物理機、虛擬機器以及容器技術下的性能分析和對比, 提供大資料應用部署在不同基礎設施架構下的硬體性價比參考。

Spark概要簡介

為什麼選Spark?而不是MR?程浩總結了以下幾條原因:

簡單易用:同一個軟體棧搞定一切(Streaming, SQL, GraphX, Machine Learning, BigDL);多種語言支援(SQL, Java, Scala, Python, R);Declarative (DataSet / DataFrames / RDD) API VS. Imperative API;活躍的資料來源連接器開源元件(Hbase, Cassandra, Redis, ElasticSearch, MongoDB)。

更快的處理引擎:DAG Based任務調度機制;緩存API與記憶體計算;開放式的Catalyst執行計畫優化器&Tungsten系列優化執行加速。

Spark擁有良好的生態圈

Spark SQL性能基準測試

實驗環境和測試集如下:

Performance Analysis Tool(PAT) 適用於與在分散式環境下收集系統資源資訊, 包括CPU、磁片、網路、記憶體等, 並以圖形化的形式展現出來。

性能比較分析

#SPARK 1.6 VS. SPARK 2.1 (輸送量測試)

#升級磁片到Intel PCI-E SSD P3600 (2650v3)

完整性能分析對比

總結:128GB記憶體可能會極大制約性能;SATA SSD (Intel S3520)相對HDD性能提升非常明顯;PCI-E SSD (Intel P3600)相對HDD性能也會有明顯提升,但是只有配合更高端的CPU(E5 2680v4)才能充分發揮其優勢。

推薦硬體選型

SPARK SQL推薦硬體設定

下一步?

最後,程浩總結了影響Spark(SQL)性能的主要因素有網路、磁片、記憶體、CPU、調度本地性、集群規模、資料均衡。可以優化的方向思考:更高的資料壓縮比;HDFS緩存或者層次化資料存儲;更加合理的任務調度(利用資料本地性);避免資料傾斜;自我調整的任務數調節。

性能比較分析

#SPARK 1.6 VS. SPARK 2.1 (輸送量測試)

#升級磁片到Intel PCI-E SSD P3600 (2650v3)

完整性能分析對比

總結:128GB記憶體可能會極大制約性能;SATA SSD (Intel S3520)相對HDD性能提升非常明顯;PCI-E SSD (Intel P3600)相對HDD性能也會有明顯提升,但是只有配合更高端的CPU(E5 2680v4)才能充分發揮其優勢。

推薦硬體選型

SPARK SQL推薦硬體設定

下一步?

最後,程浩總結了影響Spark(SQL)性能的主要因素有網路、磁片、記憶體、CPU、調度本地性、集群規模、資料均衡。可以優化的方向思考:更高的資料壓縮比;HDFS緩存或者層次化資料存儲;更加合理的任務調度(利用資料本地性);避免資料傾斜;自我調整的任務數調節。

Next Article
喜欢就按个赞吧!!!
点击关闭提示