999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談Spark 云平臺的性能優化

2018-12-28 05:48:40俞華鋒
科技視界 2018年29期
關鍵詞:進程設置優化

俞華鋒

(浙江經濟職業技術學院,浙江 杭州 310018)

0 引言

在大數據處理領域中,Spark 云平臺越來越受到歡迎, 現在已經演變成一個高速發展應用廣泛的計算平臺,在各大電子商務網站都有使用。 Spark 云平臺適用于大數據處理的各個場合,與Hadoop 平臺有相似的地方, 但優于它的是,Spark 計算的中間結果可以保存在內存中, 從而不再需要讀寫HDFS, 因此Spark 能更好地適用于大數據領域的離線批處理、 數據挖掘、 機器學習、SQL 類處理、流式/實時計算、圖計算等各種不同類型的需要迭代計算的地方。

通過Spark 云平臺可以使得處理大數據的任務執行的很快, 處理性能和效率很高。 當然如果我們要使用Spark 開發出高效率和高性能的云計算平臺, 就必須對其各個方面進行合理的設置和優化, 否則Spark平臺的執行效率可能會很低。 因此,如果要發揮Spark本身的優勢, 就必須對其各個方面進行綜合分析,并進行合理的設置和優化, 才能提高其性能。 本文主要探討如何設置和優化Spark 平臺,來提高其性能,從而來提高大數據計算作業的執行速度和執行效率。

1 Spark 運行基本原理

Spark 云平臺是處理Stream 數據的框架, 它是將數據分割成很小的時間片斷,以batch 批量處理的方式來處理Stream 數據。 這種批量處理的方式使得它可以同時兼顧實時和批量數據處理的邏輯和算法, 方便了需要將歷史和實時數據進行挖掘和分析的應用場合。Spark 云平臺通過序列化及類加載機制, 運行在JAVA虛擬機上, 采用分布式方式執行各個任務。 執行任務的流程如圖1 所示。

圖1 執行任務的流程圖

在Client 端機子上通過spark-submit 命令提交任務給 Master 機子后, 就會啟動一個屬于該任務的Driver進程。 Driver 進程根據部署模式,可能在本地機子上啟動,也可能在分布式集群中的某個Worker 工作節點上啟動。 Driver 進程啟動以后,它向集群管理器申請執行Spark 任務所需的資源Executor 進程。 集群管理器收到Driver 進程的申請后, 會根據申請的參數, 在不同的Worker 節點上,啟動相應數量的Executor 進程。

Driver 進程申請到了所需的資源之后,便開始調度和執行任務代碼。 Driver 進程首先將Spark 的任務代碼拆分成很多部分,每一部分稱之為stage,即每個stage對應一部分代碼。 同時每個stage 新建一批子任務,然后由各個Worker 節點上的Executor 進程來執行這些子任務。 第一個stage 的所有子任務執行完畢之后,就將中間計算結果存儲到Worker 節點的本地磁盤中。 一個stag 執行完以后,Driver 進程就會執行下一個stage,一直執行到全部任務執行完畢, 并且計算完所有的數據才停止。

2 優化方法探討

Spark 的性能優化, 需要我們根據不同的大數據應用場景,對Spark 的各項任務進行綜合的考慮,并提供多方面的技術解決方案來進行優化, 才能獲得最佳性能。 本文主要從開發Spark 任務時的優化、資源調度時的優化設置和數據傾斜時的優化處理這三個方面進行探討。

2.1 開發時優化處理

在開發Spark 任務時,應根據具體的業務以及實際的應用場景, 將一些性能優化的基本原則靈活地運用到Spark 任務中,例如,避免RDD 的重復設計,合理的配置Spark 的各個參數以及一些特殊操作的優化等等。

在開發一個Spark 任務時,首先根據任務相對應的數據源創建一個初始的彈性分布式數據集RDD,然后對創建的這個RDD 執行映射或歸約的操作,得到下一個中間的彈性分布式數據集RDD,然后對中間的RDD再執行映射或歸約的操作, 直到計算出最終的結果。在上述的循環往復的操作過程中,不同的 RDD 會通過映射或歸約操作得到一系列的RDD 串。對于同一份數據源一般只應該創建一個RDD, 如果創建了多個RDD, Spark 云平臺會對不同的RDD 分別進行計算,得到的結果相似,失去了參考價值,因此增加了Spark 任務的資源開銷。

在設計RDD 時, 除了上述原則外, 還要在對不同的數據執行映射或歸約的操作時, 盡量地復用同一個已經存在的RDD。 例如,已經創建了一個類型的RDD1, 還有一個僅僅是類型的RDD2,如果RDD1 中的value 值和RDD2 中的value 值完全是一樣的,那么,RDD2 是多余的,因為RDD1 中的數據已經包含了RDD2 的數據, 也就是RDD2 中的數據是RDD1 數據集中的子集。對于不同的多個RDD 中,如果其中的鍵值有子集的現象, 我們就可以用同一個RDD,這樣可以大幅度的減少RDD 的數量和操作執行的次數,減少了Spark 任務的各種資源開銷。

2.2 資源優化處理

根據具體的業務開發好Spark 任務代碼后,就應該為相應的任務配置相應的資源。 我們可以通過sparksubmit 命令來設置特定任務的資源參數。 如果資源參數設置不合理, 就會導致集群的資源沒有發揮應有的性能, 任務執行會比較緩慢。 如果設置的資源參數過大,超過了集群能夠提供的極限,就會出現各種異常。總之言之,資源參數要設置合理,否則就會導致Spark任務的執行效率低下, 無法達到預期的性能。 因此我們需要對資源參數進行設置和優化處理。

怎么樣對Spark 的資源參數進行優化配置呢?主要是通過調節和優化num-executors 和executor-memory 等參數,來提高資源使用的效率,發揮集群的優勢,從而提升Spark 任務的執行性能。

num-executors 參數的作用是,設置Spark 執行一個任務時需要執行多少個Executor 進程。 Driver 進程在向Spark 云平臺申請資源時,系統會按照num-executors 參數設置的數量,在各個worker 工作節點上,啟動numexecutors 個Executor 進程。 這個參數如果不設置的話,系統只會啟動很少量的Executor 進程, 這樣就會導致運行效率非常低,速度非常慢。num-executors 參數一般設置50~100 比較合適,執行任務時集群管理器會啟動50~100 個左右的Executor 進程, 大部分隊列可以得到充分的資源,達到性能最優化。 當然如果設置的太少,就發揮不了集群資源的優勢,造成資源浪費。

executor-memory 參數用于設置Executor 進程的內存。 Executor 內存的大小很大程度上影響著Spark 任務執行的速度。 我們可以把Executor 進程的內存大小設置為4-8G, 具體設置多少還得根據資源隊列的最大內存限制是多少。 num-executors 和executor-memory 的積就是某個Spark 任務執行的總內存量, 如果超過了隊列的最大內存量,性能也會下降。

2.3 數據傾斜時的優化處理

在大數據業務處理中經常會遇到的問題是數據傾斜。 例如, 在進行shuffle 操作時, 可能會出現這種情況,大部分key 對應幾條數據,系統很快就處理完了,但是個別key 可能對應了百萬級別的數據, 系統可能需要花費很長時間來處理。 而最長的task 花費的時間決定了整個Spark 任務的執行時間,此時的Spark 任務的執行時間會很長。 數據傾斜的優化處理就是使用各種解決方案來解決數據傾斜的問題, 以縮短任務的執行時間,從而保證Spark 的執行效率和性能。

由于大數據計算業務的需要, 經常會對Hive 數據源執行分析操作。 由于Hive 數據源中的數據不均勻,出現數據傾斜的幾率非常大, 在這種情況下, 我們可以先對數據根據key 進行聚合操作, 即所謂的ETL 預處理, 然后,Spark 再對ETL 預處理之后的數據進行處理。 由于Spark 處理的數據是聚合后的數據,它就不需要使用原先的shuffle 操作了,也不會發生數據傾斜了。

如果在shuffle 操作時, 就少數幾個鍵值會造成數據傾斜, 當然這少數幾個鍵值對任務本身的影響不大的話, 我們可以過濾掉這幾個鍵值。 因為這些鍵值被丟棄了,就不參加運算了,也就不會產生數據傾斜。 例如, 我們可以使用where 子句過濾掉上述的鍵值,在Spark Core 中對RDD 也執行相同的過濾操作, 過濾掉產生數據傾斜的鍵值。

3 結束語

本文首先闡述了Spark 云平臺性能優化的意義,然后闡述了Spark 運行的基本原理,最后探討了Spark 云平臺性能的優化方法。 希望能對Spark 云平臺的研究提供一定的參考。 當然本文只是簡單的提出了性能優化的一些方法, 具體的實現和優化處理的方法有待進一步的研究與完善。

猜你喜歡
進程設置優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
地鐵出入段線轉換軌設置
主站蜘蛛池模板: 亚洲区视频在线观看| 青青草原国产精品啪啪视频| 72种姿势欧美久久久大黄蕉| 国产精品99r8在线观看| 伊人天堂网| 日本在线视频免费| 精品人妻一区无码视频| www.亚洲色图.com| 亚洲视频免费播放| 国产成人夜色91| 精品一区二区三区波多野结衣 | 国产JIZzJIzz视频全部免费| 日本在线免费网站| 久久精品国产在热久久2019 | 久久精品丝袜| 97国产精品视频人人做人人爱| 波多野结衣一区二区三区四区视频| 亚洲国产成人久久77| 色135综合网| 青青操视频在线| 最新亚洲av女人的天堂| 91系列在线观看| 精品亚洲国产成人AV| 亚洲一区黄色| 激情六月丁香婷婷四房播| 欧美一区二区三区香蕉视| 久久久久亚洲AV成人网站软件| 亚洲熟女偷拍| 亚洲高清免费在线观看| 99热这里只有精品国产99| 国产精品视频a| 久久久久无码精品| 99re这里只有国产中文精品国产精品 | 91无码网站| 亚洲第一成人在线| 免费人成网站在线观看欧美| 天天色天天综合| 美女一级毛片无遮挡内谢| 毛片网站观看| 亚洲午夜国产片在线观看| 色有码无码视频| 性欧美在线| 久久久久人妻一区精品色奶水| 国产亚洲日韩av在线| 日韩免费成人| 99精品视频九九精品| 欧美精品成人| 黄色片中文字幕| 色婷婷在线播放| 精品夜恋影院亚洲欧洲| 三级视频中文字幕| 国产精品网址你懂的| 97国产在线视频| 婷婷五月在线| 色香蕉网站| 国产欧美日韩91| 韩国自拍偷自拍亚洲精品| 麻豆精品在线| 成人精品视频一区二区在线| 日韩午夜福利在线观看| 国产网站黄| 午夜精品国产自在| 99久久精品久久久久久婷婷| 免费A∨中文乱码专区| 亚洲天堂首页| 伊人久久久久久久| 亚洲日本中文字幕乱码中文| 久久国语对白| 久久这里只有精品66| 欧美日本在线观看| 99re在线视频观看| 亚洲第一中文字幕| 在线看片中文字幕| 国产乱子伦精品视频| 高潮毛片无遮挡高清视频播放| 亚洲精品无码不卡在线播放| 国产精品亚洲专区一区| 亚洲Av综合日韩精品久久久| 亚洲国产清纯| 亚洲人成在线免费观看| 国产激情在线视频| 亚洲国产午夜精华无码福利|