日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spark中local模式与cluster模式使用场景_不可不知的Spark调优点

發布時間:2024/9/27 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark中local模式与cluster模式使用场景_不可不知的Spark调优点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不可不知的Spark調優點?mp.weixin.qq.com

在利用Spark處理數據時,如果數據量不大,那么Spark的默認配置基本就能滿足實際的業務場景。但是當數據量大的時候,就需要做一定的參數配置調整和優化,以保證業務的安全、穩定的運行。并且在實際優化中,要考慮不同的場景,采取不同的優化策略。

1.合理設置微批處理時間

在SparkSreaming流式處理中,合理的設置微批處理時間(batchDuration)是非常有必要的。

如果batchDuration設置過短,會導致SparkStreaming頻繁提交job。如果每個batchDuration所產生的job不能在這個時間內完成處理,就會造成job不斷堆積,最終導致SparkStreaming發生阻塞,甚至程序宕掉。

需要根據不同的應用場景和硬件配置等確定,可以根據SparkStreaming的可視化監控界面,觀察Total Delay等指標來進行batchDuration的調整。

2.控制消費的最大速率

比如SparkStreaming和Kafka集成,采用direct模式時,需要設置參數spark.streaming.kafka.maxRatePerPartition以控制每個Kafka分區最大消費數。該參數默認沒有上線,即Kafka當中有多少數據它就會直接全部拉出。

但在實際使用中,需要根據生產者寫入Kafka的速率以及消費者本身處理數據的速度綜合考慮。

同時還需要結合上面的batchDuration,使得每個partition拉取的數據,要在每個batchDuration期間順利處理完畢,做到盡可能高的吞吐量,該參數的調整需參考可視化監控界面中的Input Rate和Processing Time。

3.緩存反復使用的"數據集

"Spark中的RDD和SparkStreaming中的DStream,如果被反復的使用,最好利用cache或者persist算子,將"數據集"緩存起來,防止過度的調度資源造成的不必要的開銷。

4.合理的設置GC

JVM垃圾回收是非常消耗性能和時間的,尤其是stop world、full gc非常影響程序的正常運行。

關于JVM和參數配置,建議研讀《JVM內存管理和垃圾回收》、《JVM垃圾回收器、內存分配與回收策略》、《內存泄漏、內存溢出和堆外內存,JVM優化配置參數》。

5.合理設置CPU

每個executor可以占用一個或多個core,可以通過觀察CPU的使用率變化來了解計算資源的使用情況。

要避免CPU的使用浪費,比如一個executor占用多個core,但是總的CPU利用率卻不高。此時建議讓每個executor占用相對之前較少的core,同時worker下面增加更多的executor進程來增加并行執行的executor數量,從而提高CPU利用率。同時要考慮內存消耗,畢竟一臺機器運行的executor越多,每個executor的內存就越小,容易產生OOM。

6.使用Kryo進行序列化和反序列化

Spark默認使用Java的序列化機制,但這種Java原生的序列化機制性能卻比Kryo差很多。

使用Kryo需要進行設置:

//設置序列化器為KryoSerializerSparkConf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")

//注冊要序列化的自定義類型SparkConf.registerKryoClasses(Array(classOf[CustomClass1],classOf[CustomClass2]))

7.使用高性能的算子

1)使用reduceByKey、aggregateByKey替代groupByKey

2)filter之后進行coalesce操作

3)使用repartitionAndSortWithinPartition

替代repartition與sort操作

4)使用mapPartition替代map

5)使用foreachPartition替代foreach

要結合實際使用場景,進行算子的替代優化。

除了上述常用調優策略,還有合理設置Spark并行度,比如參數spark.default.parallelism的設置等,所有這些都要求對Spark內核原理有深入理解,這里不再一一闡述。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的spark中local模式与cluster模式使用场景_不可不知的Spark调优点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。