receiver based Dstream怎么用


小编给大家分享一下receiver based Dstream怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用注意事项1. receiver 会像正常task一样,由driver调度到executor,并占用一个cpu,与正常task不同,receiver是常驻线程2. receiver个数 KafkaUtils.createStream调用次数决定,调用一次产生一个receiver3. al topicMap = Map(“page_visits” -> 1) map的value对应的数值实际上是消费的线程个数。前情:基于reciver kafka java客户端消费者高阶API4. receiver 默认 200ms 生成一个block,spark.streaming.blockInterval默认值是200ms。最小建议是50ms,小于该值,性能不好,比如task加载比重就比较大了。每秒钟大于50个任务,那么将任务加载分发执行就会成为一种负担。根据数据量来调整block的生成周期。5. receiver接收的block会放入blockmananger,每个executor都会有一个blockmanager实例,由于数据的本地性,那么存在recever的executor会被调度执行更多的task,就会导致某些executor比较空闲。a). 增加executorb). repartition增加分区c). 调整数据本地性 spark.locality.wait 香港云主机假如任务都是3s以内执行结束,就会导致越来越多的任务调度到数据存在的executor上执行,最终导致executor执行的任务失衡。6. kafka 082 高阶消费者api,有分组的概念。当然就会产生一个问题,消费者组内的线程数,和kafka分区数的对应关系。7. checkpoint 目的是从driver故障恢复或者恢复upstatebykey等状态8. wal,预写日志,为了故障恢复,实现了最少一次消费。一是没必要多副本,尤其是基于hdfs的存储。然后为了效率,可以关闭wal。使能wal只需要将spark.streaming.receiver.writeAheadLog.enable配置为true,默认值是false9 限制消费者最大速率10。 spark.streaming.stopGracefullyOnShutdown on yarn 模式kill的时候是立即终止程序的,无效。11. 在产生job的时候会将当前job有效范围的所有block组装成一个blockrdd,一个block对应一个分区。
图解未加入wal的基于recevier的dstream加入wal的Dstream存checkpoint和wal的过程故障恢复图解以上是“receiver based Dstream怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注开发云行业资讯频道!

相关推荐: 如何进行Elasticsearch检索分类

这篇文章将为大家详细讲解有关如何进行Elasticsearch检索分类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Elasticsearch中当我们设置Mapping(分词器、字段类型)完毕后,就可以按照设定…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 10/10 12:04
下一篇 10/10 12:04

相关推荐