摘要:在互聯(lián)網運營商等大規(guī)模、超大規(guī)模用戶中,Spark是最受歡迎的大數(shù)據(jù)系統(tǒng),Spark對于內存依賴性很強,所以當負載提高時,硬件平臺的內存挑戰(zhàn)就會十分明顯,浪潮為國內最大的語音識別服務提供商引入了Intel傲騰內存,經過整體優(yōu)化測試,整體性能提高了17.7倍。
挑戰(zhàn):內存規(guī)模限制使 Spark 優(yōu)勢無法充分發(fā)揮
Apache Spark是專為大規(guī)模數(shù)據(jù)處理而設計的快速通用的計算引擎,常用來構建大型、低延遲的數(shù)據(jù)分析應用程序。Spark一個主要特點在于,其能夠在內存中進行計算,這使得其數(shù)據(jù)分析效率往往高于其它計算引擎,但是,服務器內存資源的限制也使得其性能的擴展存在著一定的瓶頸,在超大規(guī)模負載中無法充分發(fā)揮其利用內存進行計算的性能優(yōu)勢。
某全球領先的語音識別服務提供商是最早將Spark應用到生產環(huán)境的團隊之一,該公司的語音云通過幾千臺服務器構成的云計算平臺向用戶提供多樣的、實時語音處理能力,日均服務終端用戶超過15億,日增數(shù)據(jù)超過100TB。
2014年該公司基于Spark和AI技術構建了DMP大數(shù)據(jù)平臺(用戶數(shù)據(jù)管理平臺)。DMP平臺的主要功能就是收集、存儲、分析和挖掘龐大的用戶數(shù)據(jù),以實現(xiàn)廣告精準投放。
客戶業(yè)務邏輯結構圖
Spark在該公司的大數(shù)據(jù)平臺中主要用于海量用戶數(shù)據(jù)分析,每天支撐穩(wěn)定運行的Spark SQL統(tǒng)計分析指標和SQL腳本有幾千個。但是在將Spark SQL用于海量用戶數(shù)據(jù)分析的過程中,仍然面臨著一些痛點,這些都限制了該公司語音云的數(shù)據(jù)分析能力。
? Spark的性能不僅受到CPU、內存、網絡、磁盤等硬件設備的制約,而且Spark SQL目前還不支持索引,也嚴重影響了Spark SQL在進行大規(guī)模數(shù)據(jù)分析時的性能,索引能夠提升數(shù)據(jù)檢索的效率,降低硬盤的IO瓶頸;
? 隨著數(shù)據(jù)量越來越大,即席分析的需求越來越強烈,即席查詢是用戶根據(jù)用戶自己的需求,靈活選擇查詢條件,系統(tǒng)能夠根據(jù)用戶的選擇生成響應的統(tǒng)計報表和結果集;在數(shù)據(jù)倉庫和大數(shù)據(jù)分析系統(tǒng)中,即席查詢使用的越多,對系統(tǒng)的性能要求也就越高,如果內存能夠緩存更多的熱點數(shù)據(jù),能夠極大的提升即席查詢處理速度并降低響應延遲;
? 數(shù)據(jù)既有隨機讀的需求(即席查詢-Ad-hoc),又有全表掃描的需求(機器學習);機器學習就是通過特定算法從海量的歷史數(shù)據(jù)中學習規(guī)律,從而對新的樣本進行分析并對未來做出預測,在模型訓練的過程中會產生大量的中間結果數(shù)據(jù),通常情況下需要將中間結果數(shù)據(jù)持久化到文件系統(tǒng)上,如果內存能夠緩存更多的中間結果數(shù)據(jù),可以提升模型訓練的速度;
案例分析:浪潮助力語音云分析能力
隨著大數(shù)據(jù)的技術的逐漸成熟已經數(shù)據(jù)量的爆發(fā),使得數(shù)據(jù)分析顯得更為重要,互聯(lián)網用戶需要強大的計算性能。作為英特爾的重要戰(zhàn)略合作伙伴,浪潮為用戶針對互聯(lián)網、IDC(Internet Data Center)、云計算、企業(yè)市場以及電信業(yè)務應用等需求,基于全新一代英特爾®至強®可擴展處理器設計了一款2U 2路機架服務器NF5280M5服務器。該產品滿足更多業(yè)務對網絡帶寬、高計算性能、大內存容量的要求,同時對密度和計算性能有較高需求并對存儲有一定要求的客戶提供了很好的解決方案。
與全新一代英特爾®至強®可擴展處理器CascadeLake一同上市的英特爾®傲騰™ 數(shù)據(jù)中心級持久內存,可能會很好的解決這個問題,傲騰內存的單設備最大容量達到512GB ,遠超DRAM 內存的128GB,這使得其可以將系統(tǒng)內存最大擴展至6TB(不包括系統(tǒng)自身內存)。而且,傲騰內存的單位容量價格要遠低于DRAM 內存,這些特性支持企業(yè)在數(shù)據(jù)中心部署更大、更經濟的數(shù)據(jù)集,在大型內存池中獲得新的洞察。
為了解決語音云在Spark SQL數(shù)據(jù)分析過程中面臨的痛點,該公司采用浪潮NF5280M5與傲騰內存,并輔以英特爾OAP軟件—優(yōu)化分析包。OAP旨在為Spark SQL加速Ad-hoc查詢。OAP定義了一種新的類Parquet文件列數(shù)據(jù)存儲格式,可以在內存以及傲騰內存中以Fiber為單位提供細粒度的分層緩存機制。更重要的,OAP擴展了Spark SQL DDL,允許用戶根據(jù)關系定義自定義索引。OAP通過將數(shù)據(jù)緩存到Executor的堆外內存(傲騰內存)中,加速Ad-hoc。
為了驗證傲騰內存在該公司語音云數(shù)據(jù)分析中的使用效果,我們在實際的方案部署中,選用了浪潮5280M5與傲騰內存的強強組合,分別測試基于傲騰內存/ DRAM 內存兩種配置下的性能對比。我們部署了5臺浪潮NF5280M5服務器,其中1臺用于Spark的Master節(jié)點,另外4臺用于Spark的worker節(jié)點,每個worker節(jié)點部署4根128GB傲騰內存。部署架構如下:
測試方案架構圖
TPC-DS是TPC(事務處理性能委員會)組織發(fā)布的一套決策支持系統(tǒng)的性能測試基準,這個基準用于評估服務器的性能。TPC-DS包含一套零售行業(yè)的數(shù)據(jù)模型,采用星型、雪花型等多維數(shù)據(jù)模型。包含7張事實表,17張維度表,以及99個標準SQL測試案例,每個測試案例幾乎都有很高的IO負載或者CPU計算負載,是專門用于評測數(shù)據(jù)倉庫、大數(shù)據(jù)分析等OLAP系統(tǒng)的基準測試工具之一。該測試集包含了針對大數(shù)據(jù)集的數(shù)據(jù)統(tǒng)計、報表生成、聯(lián)機查詢、數(shù)據(jù)挖掘等復雜的應用,測試數(shù)據(jù)與真實的商業(yè)數(shù)據(jù)高度相似,可以說TPC-DS是與真實場景非常接近的性能測試基準數(shù)據(jù)集。目前TPC-DS已經通過了最大100TB數(shù)據(jù)集規(guī)模的性能基準測試。
因此我們選用了TPC-DS大數(shù)據(jù)基準測試工具,采用了3.5TB的測試數(shù)據(jù)集,并精選了TPC-DS基準測試工具中與該公司業(yè)務場景類似的9個IO密集型SQL測試案例進行評測。測試中浪潮與Intel的工程師在硬件和軟件層面進行了大量的優(yōu)化工作,包括BIOS、操作系統(tǒng)內核、Spark參數(shù)的優(yōu)化;同時Intel工程師針對該公司的實際需求,對OAP軟件進行了進一步的優(yōu)化,以提升Spark在大容量的Parquet文件上創(chuàng)建索引的效率。
兩輪測試結果對比圖
從上圖中我們看到有兩組結果的對比,其實是在我們的測試中進行了兩輪測試。第一輪測試模擬DRAM內存和傲騰內存沒有緩存任何數(shù)據(jù)的情況。第二輪測試模擬傲騰內存已經緩存了全部的數(shù)據(jù),而DRAM內存因為容量有限只緩存了部分數(shù)據(jù)的情況。第一輪測試中,因為傲騰內存提供了更大的緩存池,性能有了6倍的提升,在第二輪測試中性能提升更加明顯,傲騰內存表現(xiàn)出了17.7X的性能提升(=3452.6/194.28) 。
收益分析:
毫無疑問,在浪潮NF5280M5服務器和傲騰內存的共同作用下,內存分析技術無疑給企業(yè)和云服務廠商帶來了一系列的優(yōu)勢。首先傲騰內存具有大容量、低成本、和持久性存儲的特點,可以為企業(yè)和云服務廠商降低IT成本、簡化基礎設施、延長系統(tǒng)和應用的運行時間;同時傲騰內存更靠近CPU,可以與CPU通過內存通道直接進行數(shù)據(jù)交互,具有高達6.8GB/s的IO帶寬和<1us的延時。更重要的是傲騰內存具有超高的隨機讀寫能力,使用傲騰內存用于緩存加速,可以為企業(yè)帶來巨大的性能提升,幫助企業(yè)更快速地獲得實時洞察,從而幫助企業(yè)創(chuàng)造新的機會,以推動和增強服務的交付能力。
免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。