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
地鐵出入段線轉換軌設置
主站蜘蛛池模板: 国产精品永久久久久| 一区二区无码在线视频| 无码乱人伦一区二区亚洲一| 欧美激情视频二区三区| 久久这里只有精品免费| 亚洲午夜综合网| 国产99精品久久| 欧美日韩在线观看一区二区三区| 丁香婷婷激情网| 欧美成人一级| 亚洲综合第一区| 日韩欧美色综合| 中文字幕天无码久久精品视频免费| 97久久精品人人做人人爽| 无码一区中文字幕| 欧美精品影院| 久青草免费在线视频| 日韩大片免费观看视频播放| 国产喷水视频| 99热国产在线精品99| 久久国产精品国产自线拍| 亚洲成人免费在线| 九色视频最新网址| 亚洲三级电影在线播放| 免费国产黄线在线观看| 视频二区中文无码| 亚洲欧洲自拍拍偷午夜色无码| 国产制服丝袜91在线| 亚洲VA中文字幕| 国产在线观看91精品| 亚洲色图欧美一区| 精品国产欧美精品v| 亚洲专区一区二区在线观看| 国产乱人免费视频| 亚洲另类国产欧美一区二区| 久久黄色影院| 永久免费无码日韩视频| 无码一区二区波多野结衣播放搜索| 国产成人AV男人的天堂| 在线观看国产网址你懂的| 国产日韩欧美在线视频免费观看 | 456亚洲人成高清在线| 国产精品jizz在线观看软件| 97人人模人人爽人人喊小说| 99人妻碰碰碰久久久久禁片| 国产一区成人| 欧美成人一级| 在线看片国产| 精品一区国产精品| 看av免费毛片手机播放| 国产精品视频导航| 国产极品粉嫩小泬免费看| 香蕉精品在线| 国产呦精品一区二区三区下载 | 亚洲视频一区| 亚洲av片在线免费观看| 免费国产黄线在线观看| 美女免费黄网站| 国产精品久久久久久久伊一| 日本一本正道综合久久dvd| 青草精品视频| 天堂亚洲网| 欧美中文一区| 五月婷婷亚洲综合| 国产成人精品男人的天堂下载| 日本一本在线视频| 在线观看无码av免费不卡网站| 国产AV无码专区亚洲A∨毛片| 人妻一区二区三区无码精品一区 | 男女性午夜福利网站| 91精品国产91久久久久久三级| 国产免费羞羞视频| 国产性猛交XXXX免费看| 亚洲精品男人天堂| 性色生活片在线观看| 日韩国产亚洲一区二区在线观看| 美女被狂躁www在线观看| 国产欧美性爱网| 啪啪永久免费av| 色综合手机在线| 四虎亚洲精品| 亚洲精品无码AV电影在线播放|