Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 火花流式接收机_Apache Spark_Spark Streaming_Yarn - Fatal编程技术网

Apache spark 火花流式接收机

Apache spark 火花流式接收机,apache-spark,spark-streaming,yarn,Apache Spark,Spark Streaming,Yarn,Spark streaming java定制接收器在EMR客户机模式和集群模式下出现问题 以下是问题 当我们在EMR集群(纱线)上运行spark streaming的JavaCustomReceiver时,它会在其中一个执行器上随机绑定侦听器。因此,我们所要做的就是,将所有传入流量转移到它随机选择的ip 当遗嘱执行人失败时,事情会变得更糟。重新启动后,它尝试将侦听器绑定到另一个执行器上,这也是随机选择的。我们必须再次将传入流量转移到新选择的节点 我的问题是: 1.我们不能将侦听器绑定到我们选择的

Spark streaming java定制接收器在EMR客户机模式和集群模式下出现问题

以下是问题

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

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

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

供参考

我们已经尝试了接收器超级类的首选位置,但我们没有同样的运气


非常感谢您在这方面的任何帮助

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

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

解决方案:

  • 确保覆盖preferredLocation
  • 确保使用确切的节点引用作为首选位置,如=>”所示 主机名应与资源使用的主机名相同 集群中的管理器(Mesos、纱线或Spark单机版),以便 资源分配可以匹配名称并在中启动接收器 正确的机器

    对于我的FQDN,主机名不起作用。IP是解决方案

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

    我还计划在驱动程序作为客户端运行的节点上运行,但spark将接收器推送到工作节点。如果您的客户机节点是工作节点,那么这不会是一个问题。如果不像我的情况,客户端是queen(name)节点,那么您应该选择一个很酷的工作节点来运行接收器:)


  • 我希望它能帮上忙。

    我试过这个,但没用。我暂时只通过在本地模式下运行来解决这个问题,现在放弃了cluter模式的想法。对于可伸缩性,我仍然需要解决问题中列出的问题。无论如何,谢谢。在我的例子中,切换到IP也是解决问题的方法,尽管使用的主机名与
    warn node-list
    中报告的主机名完全相同,并且日志显示该名称正确地解析为相同的IP。它必须是IP才能工作,