- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SparkStreaming性能调优详解.PDF
Spark Streaming性能调优详解
Spark大数据博客 -
Spark Streaming性能调优详解
Spark Streaming提供了高效便捷的流式处理模式,但是在有些场景下,使用默认的配置达不
到最优,甚至无法实时处理来自外部的数据,这时候我们就需要对默认的配置进行相关的修改。
由于现实中场景和数据量不一样,所以我们无法设置一些通用的配置(要不然Spark Streaming开
发者就不会弄那么多参数,直接写死不得了),我们需要根据数据量,场景的不同设置不一样的
配置,这里只是给出建议,这些调优不一定试用于你的程序,一个好的配置是需要慢慢地尝试。
1、设置合理的批处理时间(batchDuration)。
在构建StreamingContext的时候,需要我们传进一个参数,用于设置Spark Streaming批处
理的时间间隔。Spark会每隔batchDuration时间去提交一次Job,如果你的Job处理的时间超过了b
atchDuration的设置,那么会导致后面的作业无法按时提交,随着时间的推移,越来越多的作业
被拖延,最后导致整个Streaming作业被阻塞,这就间接地导致无法实时处理数据,这肯定不是
我们想要的。
另外,虽然batchDuration的单位可以达到毫秒级别的,但是经验告诉我们,如果这个值过
小将会导致因频繁提交作业从而给整个Streaming带来负担,所以请尽量不要将这个值设置为小
于500ms。在很多情况下,设置为500ms性能就很不错了。
那么,如何设置一个好的值呢?我们可以先将这个值位置为比较大的值(比如10S),如果
我们发现作业很快被提交完成,我们可以进一步减小这个值,知道Streaming作业刚好能够及时
处理完上一个批处理的数据,那么这个值就是我们要的最优值。
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop
2、增加Job并行度
1 / 3
Spark Streaming性能调优详解
Spark大数据博客 -
我们需要充分地利用集群的资源,尽可能的将Task分配到不同的节点,一方面可以充分利用
集群资源;另一方面还可以及时的处理数据。比如我们使用Streaming接收来自Kafka的数据,我
们可以对每个Kafka分区设置一个接收器,这样可以达到负载均衡,及时处理数据(关于如何使用
Streaming读取Kafka中的数据,可以参见 《Spark Streaming和Kafka整合开发指南(一)》和
《Spark Streaming和Kafka整合开发指南(二)》)。
再如类似reduceByKey()和Join函数都可以设置并行度参数。
3、使用Kryo系列化。
Spark默认的是使用Java内置的系列化类,虽然可以处理所有自继承java.io.Serializable的类
系列化的类,但是其性能不佳,如果这个成为性能瓶颈,可以使用Kryo系列化类,关于如何在Sp
ark中使用Kroy,请参见 《在Spark中自定义Kryo序列化输入输出API》
。使用系列化数据可以很好地改善GC行为。
4、缓存需要经常使用的数据
对一些经常使用到的数据,我们可以显式地调用rdd.cache()来缓存数据,这样也可以加快数
据的处理,但是我们需要更多的内存资源。
5、清除不需要的数据
随着时间的推移,有一些数据是不需要的,但是这些数据是缓存在内存中,会消耗我们宝贵
的内存资源,我们可以通过配置spark.cleaner.ttl为一个合理的值;但是这个值不能过小,因为如
果后面计算需要用的数据被清除会带来不必要的麻烦。而且,我们还可以配置选项spark.streami
ng.unpersist为true(默认就是true)来更智能地去持久化(unpersist)RDD。这个配置使系统找出
那些不需要经常保有的RDD,然后去持久化它们。这可以减少Spark
RDD的内存使用,也可能改善垃圾回收的行为。
6、设置合理的GC
GC是程序中最难调的一块,不合理的GC行为
您可能关注的文档
- NJCBA020B20170503C-最迷人的笑容.PDF
- NOI2012第一试.pdf
- NoteExpress集团版卸载.pdf
- OIL外汇客户协议书.pdf
- opensitrainppt-SITRAIN.ppt
- OwnershipofIntellectualPropertyRightsinCollaborative.ppt
- P6培训 深圳普华宇鹏信息咨询有限公司培训课程内容简介_PHYP-PX-OTC-001-A_(P6.0标准版)(外发客户).pdf
- PartThreeReviewwhatyouhave.PDF
- Passport燯SA,1焘opy,燛NCHS.PDF
- PCB的工程的CAM制作.pdf
文档评论(0)