• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Spark平臺(tái)的參數(shù)優(yōu)化研究現(xiàn)狀

      2019-03-14 12:42:40尉耀穩(wěn)余彬李豪帥沈鴻達(dá)
      電腦知識(shí)與技術(shù) 2019年1期
      關(guān)鍵詞:參數(shù)優(yōu)化大數(shù)據(jù)性能

      尉耀穩(wěn) 余彬 李豪帥 沈鴻達(dá)

      摘要:近年來(lái),為迎合大數(shù)據(jù)時(shí)代的需求,誕生了一批大數(shù)據(jù)處理平臺(tái),包括Hadoop,Spark,Storm等,Spark以其獨(dú)特的優(yōu)勢(shì)在此中最受歡迎。盡管Spark的應(yīng)用得到了大力推廣,其性能還存在嚴(yán)重問(wèn)題,很多學(xué)者正致力于尋找提升性能的有效途徑。針對(duì)這一問(wèn)題,他們從優(yōu)化相關(guān)配置參數(shù)的角度出發(fā),分析并總結(jié)了參數(shù)優(yōu)化對(duì)Spark平臺(tái)性能的重要影響以及目前國(guó)內(nèi)外的Spark參數(shù)優(yōu)化技術(shù)。最后,歸納了Spark參數(shù)優(yōu)化現(xiàn)存的主要問(wèn)題,并提出了下一步的研究方向。

      關(guān)鍵詞:大數(shù)據(jù); Spark; 性能; 配置參數(shù); 參數(shù)優(yōu)化

      中圖分類(lèi)號(hào):TP302? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? 文章編號(hào):1009-3044(2019)01-0011-03

      The Research Status of Parameter Optimization Based on Spark Platform

      WEI Yao-wen,YU Bin,Li Hao-shuai,SHEN Hong-da

      (State Grid Zhejiang Hangzhou Xiaoshan District Power Supply Company, Hangzhou 311200, China)

      Abstract: In recent years, in order to meet the needs of the era of big data, a number of big data processing platforms have been born, including Hadoop, Spark, Storm, etc.Spark is the most popular among them because of its unique advantages. Despite the widespread use of Spark, there are serious problems with its performance. In response to this problem, they analyze and summarize the current Spark parameter optimization techniques at home and abroad from the perspective of optimizing relevant configuration parameters. Finally, the main problems existing in Spark parameter optimization are summarized, and the next research direction is proposed.

      Key words:big data; Spark; performance; configuration parameter; parameter optimization

      1 引言

      由于大數(shù)據(jù)時(shí)代的到來(lái),大數(shù)據(jù)技術(shù)愈加受到各界學(xué)者的重視。然而大數(shù)據(jù)時(shí)代的傳統(tǒng)計(jì)算模型無(wú)法滿(mǎn)足性能和效率的需求,Hadoop [1],Spark [2],Storm [3]等分布式框架如雨后春筍般出現(xiàn)。 Hadoop作為開(kāi)源的云計(jì)算平臺(tái),繼承了MapReduce [4]的可靠性、擴(kuò)展性、高效性和容錯(cuò)性,已經(jīng)成功被應(yīng)用到多個(gè)領(lǐng)域當(dāng)中。例如Yahoo、Ebay、百度和FaceBook等大型互聯(lián)網(wǎng)企業(yè)都已經(jīng)在項(xiàng)目中應(yīng)用Hadoop框架。Spark已經(jīng)成為大規(guī)模并行數(shù)據(jù)分析中使用最廣泛的框架之一,相比Hadoop MapReduce它在編程模型和性能方面更加靈活,特別是對(duì)于迭代應(yīng)用程序。Spark還可以適應(yīng)批處理和流媒體應(yīng)用,同時(shí)提供與其他大型數(shù)據(jù)技術(shù)的接口。除此之外,它包含了類(lèi)似SQL的處理,圖形處理,機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的組件。 Spark的關(guān)鍵特性是它能夠隱藏最終用戶(hù)和應(yīng)用開(kāi)發(fā)人員所面臨的并行性,容錯(cuò)性和集群設(shè)置相關(guān)的復(fù)雜性,這使得Spark可以在應(yīng)用在實(shí)際的數(shù)據(jù)科學(xué)和大數(shù)據(jù)處理應(yīng)用中。

      雖然Spark在很多方面存在一定的優(yōu)勢(shì),但仍存在一些短板讓其在性能上有所欠缺。其中最突出的是,Spark不能保證長(zhǎng)時(shí)間運(yùn)行不出錯(cuò),且由于Spark是基于內(nèi)存運(yùn)算的,內(nèi)存中會(huì)緩存大量數(shù)據(jù),而垃圾回收速率跟不上數(shù)據(jù)產(chǎn)生的速度,從而導(dǎo)致不能穩(wěn)定性能。是以,研究如何在保持Spark原有優(yōu)點(diǎn)的情況下,進(jìn)一步提升性能從而降低運(yùn)營(yíng)成本,具備理論與現(xiàn)實(shí)意義。

      為了更加快捷地處理海量數(shù)據(jù),Spark執(zhí)行引擎已經(jīng)發(fā)展成為具有多個(gè)可配置參數(shù)的高效的復(fù)雜系統(tǒng)。使用者可以依據(jù)具體的實(shí)際應(yīng)用需求進(jìn)行參數(shù)的調(diào)整。一方面,通過(guò)仔細(xì)的參數(shù)調(diào)整,大參數(shù)空間為性能提升提供了很多機(jī)會(huì),但另一方面,大參數(shù)空間和參數(shù)之間的復(fù)雜交互使得適當(dāng)?shù)膮?shù)調(diào)整變得極其困難。有相關(guān)實(shí)驗(yàn)證明,選擇合適的參數(shù)配置能極大提升應(yīng)用程序的性能,而選擇不當(dāng)可能會(huì)降低性能,并使平均運(yùn)行成本增加2~3倍,最差情況下增加12倍[5]。大多數(shù)參數(shù)是相互關(guān)聯(lián)的,參數(shù)的影響可能因應(yīng)用程序而異,也可能因集群而異。默認(rèn)的參數(shù)配置已經(jīng)不能滿(mǎn)足開(kāi)發(fā)者對(duì)性能的要求,已經(jīng)有很多工作致力于為應(yīng)用程序和集群尋找最優(yōu)的參數(shù)配置。顯然,檢查所有可調(diào)參數(shù)的所有不同參數(shù)值組合是不可能的。因此,通過(guò)低成本自動(dòng)搜索所有可能的參數(shù)配置來(lái)調(diào)整廣泛的大數(shù)據(jù)分析平臺(tái)應(yīng)用是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。

      2 相關(guān)背景

      近幾年,大數(shù)據(jù)領(lǐng)域飛速發(fā)展,由此產(chǎn)生了多個(gè)數(shù)據(jù)處理與分析平臺(tái),Spark就是其中一個(gè)。為適應(yīng)大眾需求,Spark的功能一直在完善中,目前主要功能已經(jīng)包括離線批處理、SQL類(lèi)處理、流式/實(shí)時(shí)計(jì)算、機(jī)器學(xué)習(xí)、圖計(jì)算等。Spark主要有以下幾個(gè)突出特點(diǎn):1)計(jì)算速度快,Spark在Hadoop MapReduce上進(jìn)行了擴(kuò)展,是基于內(nèi)存計(jì)算,所以其速度可快至少100倍;2)易用性,Spark支持多種編程語(yǔ)言,包括常用的Java,Python,Scala等,其默認(rèn)語(yǔ)言Scala語(yǔ)法簡(jiǎn)單使用方便;3)通用性,Spark包含SparkCore,GraphX等多個(gè)組件,可以同時(shí)處理不同類(lèi)型的數(shù)據(jù);4)兼容性,Spark是開(kāi)源產(chǎn)品,允許二次開(kāi)發(fā)并和其他產(chǎn)品一起使用。

      Spark的運(yùn)行效率涉及眾多因素,如集群配置,任務(wù)類(lèi)型,任務(wù)調(diào)度,參數(shù)配置等。當(dāng)集群配置已經(jīng)確定時(shí),參數(shù)是影響性能的主要因素。合適的參數(shù)配置會(huì)讓任務(wù)運(yùn)行效率大幅度提升,不合適的參數(shù)配置則會(huì)導(dǎo)致應(yīng)用程序難以達(dá)到計(jì)算的峰值速度。在其他環(huán)境因素相同的情況下,參數(shù)對(duì)性能有著不可忽視的作用,參數(shù)配置的好壞決定著作業(yè)運(yùn)行效率和集群吞吐量的變化。雖然Spark有默認(rèn)的參數(shù)配置,但受集群負(fù)載情況不停變化、作業(yè)類(lèi)型繁多等原因影響,不同作業(yè)有不同需求,默認(rèn)參數(shù)配置不能充分利用集群資源提高系統(tǒng)吞吐率。

      當(dāng)前主要有兩種調(diào)整參數(shù)的方式。首先,這些參數(shù)通過(guò)反復(fù)試驗(yàn)手動(dòng)調(diào)整,由于參數(shù)空間大且參數(shù)之間復(fù)雜的相互作用,這是低效且耗時(shí)的。其次,基于成本的性能建模適用Hadoop的參數(shù)調(diào)整,Spark在底層實(shí)現(xiàn)機(jī)制上與Hadoop有很大不同,因此不能將此方法移植到Spark上。所以,從新的角度研究Spark的參數(shù)優(yōu)化是必須且迫切的。

      3 Spark運(yùn)行機(jī)制

      要想通過(guò)參數(shù)調(diào)整來(lái)優(yōu)化Spark性能,首先要了解參數(shù)優(yōu)化對(duì)性能是如何影響的,所以我們需要理解Spark的工作原理,首先介紹Spark的整體架構(gòu),如圖1所示。

      圖1中,Driver是用戶(hù)提交的應(yīng)用程序;SparkContext是Spark的主要入口,也是應(yīng)用程序與集群交互的接口;Cluster Manger是集群管理器,負(fù)責(zé)資源的管理和分配,目前支持本地、單機(jī)、Yarn等多種模式;Worker Node是執(zhí)行各種運(yùn)算的工作節(jié)點(diǎn);Executor是進(jìn)程;Cache是緩存;Task是作業(yè)的多個(gè)拆分。

      首先運(yùn)行用戶(hù)的程序,其主函數(shù)會(huì)初始化SparkContext,然后與Cluster Manger通訊。Cluster Manger按需將資源分配給任務(wù),分配結(jié)束啟動(dòng)Executor進(jìn)程。Worker Node與Executor是一一對(duì)應(yīng)關(guān)系。Executor會(huì)啟動(dòng)管理Task運(yùn)行的線程池,同時(shí)將數(shù)據(jù)保存至內(nèi)存或磁盤(pán)。從任務(wù)開(kāi)始執(zhí)行到正確執(zhí)行完畢,這段時(shí)間Executor會(huì)一直向Driver報(bào)告Task的運(yùn)行狀態(tài)。

      當(dāng)程序開(kāi)始執(zhí)行后,啟動(dòng)一個(gè)Driver,初始化SparkContext并創(chuàng)建DAGScheduler、TaskScheduler、SchedulerBackend,HeartbeatReceiver。當(dāng)執(zhí)行Action操作時(shí)會(huì)觸發(fā)一個(gè)Job。DAGScheduler會(huì)按照RDD之間的寬窄依賴(lài)關(guān)系將該Job劃分為多個(gè)Stage。然后Taskset會(huì)被傳給TaskScheduler,進(jìn)行任務(wù)調(diào)度。Driver會(huì)根據(jù)需求請(qǐng)求資源,ResourceManager根據(jù)請(qǐng)求分配資源,并在對(duì)應(yīng)的Worker Node上創(chuàng)建Executor。之后TaskScheduler進(jìn)行Task分配,Executor執(zhí)行結(jié)束會(huì)通過(guò)ExecutorBackend傳遞回去,該任務(wù)執(zhí)行結(jié)束TaskManager開(kāi)始執(zhí)行下一個(gè)任務(wù)。所有任務(wù)全部執(zhí)行結(jié)束后TaskSet Manager負(fù)責(zé)將結(jié)果反饋給DAGScheduler。

      4 Spark參數(shù)優(yōu)化的研究進(jìn)展

      Spark已經(jīng)發(fā)展成擁有180多個(gè)配置參數(shù)的大數(shù)據(jù)分析平臺(tái),其中可配置的參數(shù)多達(dá)150個(gè),不同的應(yīng)用程序?qū)?shù)的配置有不同的要求,合理的參數(shù)優(yōu)化將大幅提升平臺(tái)的性能。配置參數(shù)的優(yōu)化,顧名思義就是找出參數(shù)配置中最優(yōu)或接近最優(yōu)的取值,讓作業(yè)性能在該組參數(shù)配置下得以?xún)?yōu)化。表1羅列了一些常見(jiàn)的Spark可調(diào)參數(shù)以及專(zhuān)業(yè)人員給出的推薦配置。

      在參數(shù)優(yōu)化方面,Apache Spark官方網(wǎng)站的Tuning Spark文檔[6]給出了相關(guān)的參數(shù)調(diào)優(yōu)指導(dǎo)意見(jiàn)。Omid Alipourfard等[5]介紹了一個(gè)基于貝葉斯優(yōu)化的系統(tǒng),可以發(fā)現(xiàn)最佳或接近最優(yōu)的云配置,最大限度地降低云使用成本,保證應(yīng)用程序性能并限制重復(fù)大數(shù)據(jù)分析作業(yè)的搜索開(kāi)銷(xiāo)。Anastasios Gounaris等[7]根據(jù)實(shí)驗(yàn)運(yùn)行的證據(jù),將經(jīng)驗(yàn)映射到試錯(cuò)法迭代改進(jìn)方法,用于調(diào)整任意應(yīng)用中的參數(shù),提出了一種用于參數(shù)調(diào)整的替代系統(tǒng)方法,該方法可以很容易地應(yīng)用到任何計(jì)算基礎(chǔ)設(shè)施上。

      陳僑安[8]等提出了一種基于近鄰搜索算法的參數(shù)推薦方法,通過(guò)與歷史數(shù)據(jù)庫(kù)中的任務(wù)對(duì)比,為用戶(hù)推薦同種任務(wù)類(lèi)型的相關(guān)參數(shù)配置。但是這種方法沒(méi)有明確定義如何判斷兩個(gè)任務(wù)是同類(lèi)型的,而且過(guò)度依賴(lài)歷史作業(yè)的參數(shù)信息導(dǎo)致結(jié)果并不完美。王國(guó)路[9]等把參數(shù)優(yōu)化問(wèn)題看作是機(jī)器學(xué)習(xí)中的分類(lèi)問(wèn)題,然后設(shè)計(jì)出一種二分類(lèi)加多分類(lèi)的多模型融合方法來(lái)實(shí)現(xiàn)參數(shù)調(diào)優(yōu),該方法的優(yōu)點(diǎn)是實(shí)現(xiàn)了參數(shù)的自動(dòng)調(diào)優(yōu),但缺點(diǎn)是對(duì)于確定不同應(yīng)用程序的關(guān)鍵參數(shù)沒(méi)有合適的解決方案。

      在文獻(xiàn)[10]中,作者調(diào)查了輸入數(shù)據(jù)量對(duì)Spark應(yīng)用程序的影響,確定關(guān)鍵參數(shù)與內(nèi)存和壓縮有關(guān),但沒(méi)有分析它們的確切影響。在文獻(xiàn)[11]中的工作關(guān)注Spark在高性能計(jì)算(HPC)系統(tǒng)上的部署,確定了四個(gè)關(guān)鍵參數(shù)以及與應(yīng)用程序相關(guān)的并行級(jí)別。在文獻(xiàn)[12]中作者對(duì)Spark的瓶頸進(jìn)行了徹底的調(diào)查,它聲稱(chēng)許多應(yīng)用程序都是CPU綁定的,內(nèi)存扮演著關(guān)鍵角色。在文獻(xiàn)[13]中,作者提出了一種稱(chēng)為主動(dòng)協(xié)調(diào)的方法。給定一系列參數(shù),主動(dòng)協(xié)調(diào)可以調(diào)整和提高性能。為了識(shí)別那些沒(méi)有或可能沒(méi)有任何顯著影響的參數(shù),文獻(xiàn)[14]通過(guò)測(cè)試每個(gè)參數(shù)的值來(lái)驗(yàn)證應(yīng)用程序的敏感度。文獻(xiàn)[15]使用遺傳算法來(lái)檢查可能的參數(shù)空間,這樣的解決方案可能涉及太多的實(shí)驗(yàn)運(yùn)行,我們提倡獨(dú)立于應(yīng)用程序大小的有限數(shù)量的配置運(yùn)行。

      5 進(jìn)一步的研究方向

      從配置參數(shù)優(yōu)化的角度來(lái)看,面向領(lǐng)域的系統(tǒng)運(yùn)行維護(hù)已經(jīng)成為大數(shù)據(jù)技術(shù)的成本瓶頸。目前國(guó)內(nèi)對(duì)于Spark參數(shù)配置優(yōu)化的研究遠(yuǎn)不及國(guó)外,但關(guān)于Hadoop MapReduce參數(shù)配置優(yōu)化的研究較多,Spark又是在Hadoop基礎(chǔ)上的擴(kuò)展,二者之間存在一定的相似性和聯(lián)系。所以可以嘗試將Hadoop參數(shù)調(diào)優(yōu)的方法轉(zhuǎn)換到Spark平臺(tái)。另外越來(lái)越多的專(zhuān)家和學(xué)者開(kāi)始運(yùn)用機(jī)器學(xué)習(xí)的方法進(jìn)行大數(shù)據(jù)分析平臺(tái)的參數(shù)優(yōu)化研究,所以以后也可嘗試借助機(jī)器學(xué)習(xí)確定關(guān)鍵的參數(shù),以便更準(zhǔn)確快速地找到最優(yōu)的參數(shù)配置組合。

      6 結(jié)束語(yǔ)

      隨著大數(shù)據(jù)處理計(jì)算框架的不斷出現(xiàn),Spark在性能和對(duì)多種計(jì)算模型的支持上都具有突出優(yōu)勢(shì),已經(jīng)逐漸得到了廣泛應(yīng)用,但其性能優(yōu)化問(wèn)題尚未得到解決。本文主要介紹了Spark的工作原理,闡述了國(guó)內(nèi)外該課題的研究現(xiàn)狀,分析了參數(shù)優(yōu)化的重要性和技術(shù)難點(diǎn),并從配置參數(shù)調(diào)優(yōu)的角度提出了優(yōu)化Spark性能問(wèn)題的解決方案和未來(lái)的研究方向。

      參考文獻(xiàn):

      [1] Apache Hadoop, http://hadoop.apache.org/.

      [2] Apache Spark, http://spark.apache.org/.

      [3] Apache Storm, http://storm.apache.org/.

      [4] 門(mén)威. 基于MapReduce的大數(shù)據(jù)處理算法綜述[J]. 濮陽(yáng)職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2017,30(5):85-88.

      [5] Omid Alipourfard, Hongqiang Harry Liu, Jianshu Chen, Shivaram Venkataraman, Minlan Yu, Ming Zhang, CherryPick: Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics, Proc. of the 14th USENIX Symposium on Networked Systems Design and Implementation (NSDI 17),Boston, MA, USA, March 27–29, 2017:469-182.

      [6] SparkConfiguration, http: //spark.apache.org/docs/1.6.1/configuration.html.

      [7] Gounaris A, Torres J. A Methodology for Spark Parameter Tuning [J]. Big Data Research, 2017.

      [8] 陳僑安,李峰,曹越,等.基于運(yùn)行數(shù)據(jù)分析的Spark任務(wù)參數(shù)優(yōu)化[J].計(jì)算機(jī)工程與科學(xué),2016,38(1): 11-19

      [9] XU J G, WANG G L, LIU S Y, et al. A Novel Performance Evaluation and Optimization Model for Big Data System [C] // Proceedings of the 15th International Symposium on Parallel and Distributed Computing (ISPDC 2016). Fuzhou,China,2016: 1765-1773.

      [10] A.J. Awan, M. Brorsson, V. Vlassov, E. Ayguade, How data volume affects spark based data analytics on a scale-up server, arXiv:1507.08340, 2015.

      [11] Y. Wang, R. Goldstone, W. Yu, T. Wang, Characterization and optimization of memory-resident mapreduce on hpc systems, in: 28th International Parallel and Distributed Processing Symposium (IPDPS), 2014, pp. 799-808.

      [12] A. Davidson, A. Or, Optimizing Shuffle Performance in Spark, Tech. Rep., Berkeley-Department of Electrical Engineering and Computer Sciences, University of California, 2016.

      [13] 楊志偉,鄭烇,王嵩,等.異構(gòu)Spark集群下自適應(yīng)任務(wù)調(diào)度策略[J].計(jì)算機(jī)工程,2016,42(1): 31-35,40.

      [14] 王利, 王晶, 張偉功,等. Linux內(nèi)核參數(shù)對(duì)Spark負(fù)載性能影響的研究[J].計(jì)算機(jī)工程與科學(xué), 2017, 39(7):1219-1226.

      [15] 康海蒙. 基于細(xì)粒度監(jiān)控的Spark優(yōu)化研究[D]. 哈爾濱工業(yè)大學(xué), 2016.

      猜你喜歡
      參數(shù)優(yōu)化大數(shù)據(jù)性能
      提供將近80 Gbps的帶寬性能 DisplayPort 2.0正式發(fā)布
      基于神經(jīng)網(wǎng)絡(luò)的動(dòng)力電池組焊接參數(shù)優(yōu)化研究
      研究LTE與WCDMA系統(tǒng)間小區(qū)互操作與參數(shù)優(yōu)化
      基于磁流變技術(shù)的汽車(chē)發(fā)動(dòng)機(jī)隔振系統(tǒng)的參數(shù)優(yōu)化
      科技視界(2016年23期)2016-11-04 08:17:36
      基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
      科技視界(2016年20期)2016-09-29 10:53:22
      上向進(jìn)路式尾砂膠結(jié)充填采礦法采場(chǎng)結(jié)構(gòu)參數(shù)優(yōu)化研究
      Al-Se雙元置換的基于LGPS的thio-LISICON的制備與性能表征
      強(qiáng)韌化PBT/PC共混物的制備與性能
      RDX/POLY(BAMO-AMMO)基發(fā)射藥的熱分解與燃燒性能
      阿拉善盟| 新和县| 永善县| 商城县| 蚌埠市| 罗山县| 靖宇县| 吉水县| 运城市| 天柱县| 天峻县| 津南区| 保亭| 洛川县| 陆丰市| 长治县| 喀喇沁旗| 尼勒克县| 合江县| 南充市| 汾西县| 都兰县| 苍山县| 江门市| 都江堰市| 永昌县| 苍溪县| 神池县| 谷城县| 永兴县| 普宁市| 黔江区| 浮梁县| 沿河| 阳江市| 岳阳县| 郎溪县| 大同县| 新兴县| 苍溪县| 留坝县|