首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark streaming JavaCustomReceiver

Spark streaming JavaCustomReceiver
EN

Stack Overflow用户
提问于 2017-01-23 01:02:32
回答 1查看 160关注 0票数 5

Spark streaming java自定义接收器在EMR客户端模式和集群模式下的yarn中出现问题。

以下是问题所在。

当我们在EMR集群(yarn)上运行spark streaming的JavaCustomReceiver时,它会随机绑定一个executor上的listener。因此,我们所要做的就是将所有传入流量转移到它随机选择的ip。

当执行程序失败时,事情会变得更糟。重启后,它会尝试将侦听器绑定到另一个执行器上,这也是随机选择的。再一次,我们必须将传入流量转移到新选择的节点。

我的问题是: 1.我们可以不在我们选择的特定执行器上绑定侦听器吗?(修复要绑定的监听器的ip )如果没有...2.有没有什么方法可以让我们通过编程知道它在哪个执行器上重新启动了监听器?(因为它选择随机节点来启动该接收器),最重要的是。3.不能在运行驱动的节点上绑定监听器吗?(在客户端模式下运行时)

仅供参考

我们已经尝试了Receiver超类的preferredLocation,但我们没有同样的运气。

在这方面的任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2017-01-24 14:00:42

我在使用Flume时也遇到了同样的问题。即使我向FlumeUtils.createStream传递了我的首选位置主机名,它也会尝试运行每个节点,但除了确切的节点之外,所有节点都会失败。如果我传递0.0.0.0作为主机,那么它的行为就像您所描述的那样。它选择一个随机节点来启动接收器。

问题:资源管理器无法决定运行接收器的首选工作节点。

解决方案:

  1. 确保您覆盖preferredLocation
  2. Make确保您使用确切的节点引用作为首选位置,如Spark+Flume Integration =>“注意,主机名应该与集群中的资源管理器使用的名称(Mesos、YARN或Spark Standalone)相同,以便资源分配可以匹配名称并在正确的机器上启动接收器”。

对于我的情况FQDN,hostname不起作用。IP是解决方案。

  • 确保您传递的IP属于Spark Worker节点( datanode)。如果您传递非datanode计算机的IP地址,它也会失败。

我还计划在节点上运行,在该节点上,driver作为客户端运行,但spark将接收器推送到工作节点。如果您的客户端节点是工作节点,那么这将不会是一个问题。如果它不是-like我情况下客户端是一个女王(名字)节点-,那么您应该选择一个很酷的工作者节点来运行接收器:)

我希望它能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41793721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档