【问题标题】:Running Apache Storm in local mode connection errors在本地模式下运行 Apache Storm 连接错误
【发布时间】:2023-03-19 06:51:01
【问题描述】:

编辑:所以当我增加睡眠时间但仍然出现连接/超时错误时,这得到了“解决”

59297 [Thread-14] ERROR o.a.s.d.s.ReadClusterState - Failed to Sync Supervisor

这是我的自定义拓扑:

public class MyTopology {
    public static void main(String[] args) {
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("NameSpout", new NameSpout());
        builder.setBolt("NameBolt", new MyBolt()).shuffleGrouping("NameSpout");

        Config config = new Config();
        config.setDebug(true);
        config.setNumWorkers(1);

        LocalCluster cluster = new LocalCluster();

        try {

            cluster.submitTopology("TryingOne", config, builder.createTopology());
            Thread.sleep(10000);
        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            cluster.shutdown();
        }

    }

}

【问题讨论】:

    标签: java multithreading apache apache-storm executorservice


    【解决方案1】:

    是的,LocalCluster 会处理它。使用 LocalCluster 时不应运行自己的 Zookeeper 服务器。

    为了排除您正在运行的环境的问题,请尝试检查并运行此拓扑https://github.com/apache/storm/blob/v1.2.2/examples/storm-starter/src/jvm/org/apache/storm/starter/ExclamationTopology.java

    如果它有效,那将是您的项目配置的问题。如果不是,那么您所处的环境可能存在问题。

    【讨论】:

    • 我仍然遇到连接错误(类型略有不同)。这真的很令人困惑,因为我认为 localmode 与周围环境无关。
    • 不应该。 LocalCluster 启动一个嵌入式 Zookeeper 实例。为了清楚起见,您是否只看到连接错误而没有拓扑输出(在您的代码示例中,您应该增加睡眠时间,1 秒可能不够)?也许您的操作系统出于某种原因阻止了 Zookeeper 想要使用的端口?
    • 是的,只看到错误,没有拓扑结果。我正在使用 macOS。我觉得这与 Zookeeper 端口有关。由于它是内部的,我认为防火墙或 vpn 不会改变任何东西?
    • 我不知道。据我所知 Zookeeper 应该在 MacOS 上工作。您能否尝试运行 ExclamationTopology,并粘贴完整的控制台输出以及您正在运行的命令?
    • 好的,我所做的就是进一步延长睡眠时间,我确实看到我的东西现在发出了。但是,我得到的错误仍然存​​在,因为它没有正确关闭。我会接受你的回答,但希望我知道为什么会出现这个错误。
    猜你喜欢
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2013-05-15
    • 2023-01-25
    相关资源
    最近更新 更多