赞
踩
SparkStreaming能支持的最短时间间隔取决于数据源产生的速度,及对RDD的操作。本文针对同一数据源(日志由spark实时收集),测试RDD几种操作对应的合适的时间间隔。时间间隔time以如下形式作用于spark streaming:
new StreamingContext(sparkConf, Milliseconds(time.toLong))
测试数据源: log data with speed 100G/d
测试用例:对RDD基本操作print,log收集至hdfs,对log进行filter/map/reduce/write hdfs
结论:
如 果只是类似于RDD.print()的简单操作,时间间隔最小可到5ms级别。对RDD的操作越复杂,写hdfs的数据量越大,最小时间间隔就需要越长; 否则会出现越来越多的作业被拖延,并且delay的时间越来越长。有趣的是,相比于RDD map reduce,写hdfs对时间间隔影响更大。
最合理的时间间隔应该是,足够恰好处理完job,job total delay整体趋于平稳(可有波动),而不是持续增长。
App running time: 20mins左右
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。