繁体   English   中英

使用Spark流在本地设置中运行两个并行的自定义接收器流以进行本地测试

[英]Running two parallel custom receiver streams in local setup with Spark streaming for local test

我目前正在学习如何使用Spark流,并希望通过加入并行流进行一些实验。 为此,我想使用自定义Receiver类设置两个并行流,只生成随机数。 到目前为止,我已完成所有设置。

但是,在一个Spark上下文中运行同一接收者类的两个自定义接收者实例似乎存在问题。 当我只运行一个时,一切运行正常。 当我连接第二个时,似乎会出现一些无限循环错误。 症状是我不再得到任何输出。 为了更好地理解,我在github上放置了一个简单的示例来显示问题

如果您克隆项目,那么一切都应该正常工作。 只需取消注释Application.java中的第18行,您应该看到print调用的输出消失了。 这可能是Spark流中的错误,或者我对库的工作原理的理解不足以正确使用它。 无论哪种方式,我都希望这里有一些专家能够为我解决这个问题。

幸运的是, Stackoverflow中有一个“相关”功能。 只是通过查看“相关”线程找到了我的解决方案。 对以下线程的可接受答案也可以解决此处描述的问题。

因此,解决方案是,在本地设置中,如果您使用主URL“ local [2]”,则只会获得2个工作线程。 在此设置中,这两个都由自定义接收器使用。 为了获得第三个处理线程,需要使用主URL“ local [3]”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM