内容简介:在实际的项目中,有时候我们需要把一些数据实时的写回到kafka中去,一般的话我们是这样写的,如下:但是这种写法有很严重的缺点,对于每个rdd的每一个partition的数据,每一次都需要创建一个KafkaProducer,显然这种做法是不太合理的,而且会带来性能问题,导致写的速度特别慢,那怎么解决这个问题呢?
本文原文 (点击下面 阅读原文 即可进入) https://blog.csdn.net/xianpanjia4616/article/details/81432869
在实际的项目中,有时候我们需要把一些数据实时的写回到kafka中去,一般的话我们是这样写的,如下:
但是这种写法有很严重的缺点,对于每个rdd的每一个partition的数据,每一次都需要创建一个KafkaProducer,显然这种做法是不太合理的,而且会带来性能问题,导致写的速度特别慢,那怎么解决这个问题呢?
1、首先,我们需要将KafkaProducer利用lazy val的方式进行包装如下:
2、之后我们利用广播变量的形式,将KafkaProducer广播到每一个executor,如下:
3、然后我们就可以在每一个executor上面将数据写入到kafka中了
这样的话,就不需要每次都去创建了。先写到这儿吧。经过测试优化过的写法性能是之前的几十 倍。如果有写的不对的地方,欢迎大家指正。
一个进阶的大数据技术交流学习公众号,死磕大数据与分布式系统,分享NoSQL数据库、存储计算引擎、消息中间件等。长按二维码关注 :
以上所述就是小编给大家介绍的《spark streaming写入kafka性能优化》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Flink 实时写入数据到 ElasticSearch 性能调优
- 一场 HBase 2.x 的写入性能优化之旅
- 滴滴 ElasticSearch 千万级 TPS 写入性能翻倍技术剖析
- 点赞模块设计 - Redis缓存 + 定时写入数据库实现高性能点赞功能
- 优化ElasticSearch写入效率
- golang 创建,读取,写入文件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Transcending CSS
Andy Clarke、Molly E. Holzschlag / New Riders / November 15, 2006 / $49.99
As the Web evolves to incorporate new standards and the latest browsers offer new possibilities for creative design, the art of creating Web sites is also changing. Few Web designers are experienced p......一起来看看 《Transcending CSS》 这本书的介绍吧!