博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark Streaming应用程序调优
阅读量:2428 次
发布时间:2019-05-10

本文共 1436 字,大约阅读时间需要 4 分钟。

常见调优策略

1.降低数据处理时间

spark streaming的任务最终会转换成RDD的计算,因此降低处理时间可以采用spark core优化的方法,这里不赘述。

2.调整receiver并行度

spark streaming应用中默认只启动一个receiver,当数据流量很大时可能出现单个receiver处理能力瓶颈的问题,因此可以启动多个receiver来并行处理。下面以socketTextStream为例。

val line1 = ssc.socketTextStream("192.168.61.136", 9998)val line2 = ssc.socketTextStream("192.168.61.136", 9999)// line 为line1和line2合并后的Dstreamval lines = line1.union(line2)

2.调整block的产生周期

receiver接收的数据会定期生成一个Block,这个参数由spark.streaming.blockInterval控制,默认是200ms。一般生产建议不要低于50ms。

3.调整接收数据的速率

spark.streaming.receiver.maxRate用于控制receiver接收数据的速率,默认是Long.Maxvalue。建议根据实际情况进行配置,防止batch processing time大于batchinterval。

4.调整Dstream分区数

Dstream的分区数决定了执行的并行度,因此可以根据实际情况调整Dstream的分区数。

// 调整分区数为4inputStream.repartition(4)

5.使用kryo序列化

kryo是一个高性能的序列化/反序列化工具,由于使用变长存储与字节码生成技术,它的性能比java原生方式会高出很多。

val conf = new SparkConfconf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")// 注册要序列化的类,Test1和Test2为类名conf.registerKryoClasses(Array(classOf[Test1], classOf[Test2]))

7.foreachRDD 算子调优

foreachRDD算子可以灵活的自定义输出,内部建议使用foreachPartition。

dstream.foreachRDD {
rdd => rdd.foreachPartition {
partitionOfRecords => // 自定义输出 }}

8.反压机制

为了适应数据流量的动态变化,引入了反压机制。它会根据jobScheduler反馈作业的执行信息来动态调整receiver数据接收速率(spark.streaming.receiver.maxRate)。通过参数
spark.streaming.backpressure.enable控制是否启动反压机制。默认为false,不启动。

9.资源动态分配

spark 支持资源动态分配,当executor不够时分配多余的executor,executor空闲时回收。
通过参数spark.streaming.dynamicAllocation.enable控制是否开启资源动态分配。

转载地址:http://mrcmb.baihongyu.com/

你可能感兴趣的文章
使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署
查看>>
5种数据分析常用的思维方法!
查看>>
分布式系统与消息投递
查看>>
“迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战
查看>>
讲讲亿级PV的负载均衡架构!
查看>>
史上最全SQL优化方案
查看>>
云漫圈 | 学Python还是Java, 8张漫画带你全面分析
查看>>
趣挨踢 | 只有挨踢人才能读懂的西游记
查看>>
微服务、Kubernetes和无服务器之后,即将发生的……
查看>>
OpenStack精华问答 | OpenStack都有哪些基础服务?
查看>>
要闻君说:小米9已确认无线充电;华为着手操作的5G火车站启动建设仪式将于本月18日“登陆”;三星提出大力发展电信网络设备业务……...
查看>>
50个最有价值的数据可视化图表(推荐收藏)
查看>>
Hadoop常见问题 | 用浏览器访问namenode的50070端口不正常,如何解决?
查看>>
Storm精华问答 | task与executor有什么关系?
查看>>
K8S安全军规101:对CNCF最佳实践的扩充
查看>>
要闻君说:小米手机部组织架构突现大调整;河南联通重启VDC扩容工程招标;英特尔已收购Ineda Systems,剑指独显;...
查看>>
Docker精华问答 | task与executor有什么关系?
查看>>
2019年中国IT市场趋势热点
查看>>
2019年最值得关注的五大微服务发展趋势
查看>>
你与数据科学家只差这26条python技巧
查看>>