开发者社区> 问答> 正文

【已解决】jstorm配置出错,supervisor hostname错误




================================================分割线=================================================
conf配置:

storm.zookeeper.servers:     - "192.168.10.92"

storm.zookeeper.root: "/jstorm"
nimbus.host: "192.168.10.92" storm.local.dir: "%JSTORM_HOME%/data"
jstorm.log.dir: "/data/jstorm/logs"
java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"

supervisor.slots.ports:    
     - 6800
     - 6801
     - 6802
     - 6803


================================================================
supervisor.log 内容:


[ERROR 2016-04-27 14:00:54 c.a.j.d.s.Heartbeat:115 main] get supervisor host error!
java.lang.Exception: the hostname which  supervisor get is localhost
    at com.alibaba.jstorm.daemon.supervisor.Heartbeat.initSupervisorInfo(Heartbeat.java:111) [jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Heartbeat.<init>(Heartbeat.java:97) [jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Supervisor.mkSupervisor(Supervisor.java:123) [jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Supervisor.run(Supervisor.java:201) [jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Supervisor.main(Supervisor.java:237) [jstorm-core-2.1.1.jar:na]
[ERROR 2016-04-27 14:00:54 c.a.j.d.s.Supervisor:218 main] Fail to run supervisor
java.lang.RuntimeException: java.lang.Exception: the hostname which  supervisor get is localhost
    at com.alibaba.jstorm.daemon.supervisor.Heartbeat.initSupervisorInfo(Heartbeat.java:116) ~[jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Heartbeat.<init>(Heartbeat.java:97) ~[jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Supervisor.mkSupervisor(Supervisor.java:123) [jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Supervisor.run(Supervisor.java:201) [jstorm-core-2.1.1.jar:na]
    at com.alibaba.jstorm.daemon.supervisor.Supervisor.main(Supervisor.java:237) [jstorm-core-2.1.1.jar:na]
Caused by: java.lang.Exception: the hostname which  supervisor get is localhost
    at com.alibaba.jstorm.daemon.supervisor.Heartbeat.initSupervisorInfo(Heartbeat.java:111) ~[jstorm-core-2.1.1.jar:na]
    ... 4 common frames omitted



展开
收起
lovelyj 2016-04-27 14:43:24 11667 0
3 条回答
写回答
取消 提交回答
  • I like to program and write stuff, making things a reality always make me excited. Now, I am a Apache committer.
    回 1楼(玄弟) 的帖子
    感谢玄弟及时回复。。。   
    2016-04-27 22:35:48
    赞同 展开评论 打赏
  • 回 1楼玄弟的帖子
    3Q
    正好刚刚看了下代码,解决了,hostname为null会读NetWorkUtils.hostname()

    主要是在默认的storm.yaml中没有写String SUPERVISOR_HOSTNAME = "supervisor.hostname"这个参数

    之前没用过storm,这个参数是必须的吗,如果是非必须的是否需要在文档说明一下啊

    -------------------------

    回 4楼玄弟的帖子
    感谢回复
    看了下代码,supervisor.hostname或者use ip这样的方式感觉都不是最稳妥的,还是在hosts文件里面配置

    在我的服务器上JStorm使用的JDK提供的几个获取localhost的函数似乎有可能会有异常,不晓得是不是多网卡的问题,尝试调试了一下,不是很清楚异常的具体问题

    anyway,感觉配置/etc/hosts还是最好的
    2016-04-27 16:26:02
    赞同 展开评论 打赏
  • 你尝试配置一下hostname,在/etc/hosts文件里将ip 绑定你的域名。

    -------------------------

    ···
        public static String getHostName(Map conf) {
            String hostName = ConfigExtension.getSupervisorHost(conf);
            if (hostName == null) {
                hostName = NetWorkUtils.hostname();
            }

            if (ConfigExtension.isSupervisorUseIp(conf)) {
                hostName = NetWorkUtils.ip();
            }

            return hostName;
        }
    ···

    不是必须的,如果你没有配置,就会通过NetWorkUtils.hostname获取,你机器需要配置host,否则还是拿不到,当然你如果在storm.yaml配置了supervisor.hostname 也是ok的

    2016-04-27 16:03:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载