私はapache-nifiを使用しています。設定ファイルでパブリックDNS名を使用しない限り、Webサーバーを起動するときにアドレスにバインドできません。 DNS名が解決するIPアドレスを使用しても機能しません。同様に/etc/hosts
で割り当てられたホストエイリアスを使用しても機能しません。それらのそれぞれのケースでは、nifiログで、jettyが投げた例外が要求されたアドレスを割り当てることができないと言います。nifiが要求したアドレスを割り当てることができません
netstatで検証されているように、すでにポート上でリッスンすることはありません。また、DNS名を使用すると、アドレスへのエラーバインディングはありません。これは設計によるのですか、何か間違っていますか?
ここに私の設定の詳細があります。 (実際にはnifiクラスタを実行していますが、組み込みのzookeeperもIPアドレスやホストエイリアスにバインドできませんが、DNS名で動作します。クラスタリングをオフにした単一のnifiノードを使用すると、 nifiサーバーの設定を表示するだけです)。
nifiサーバーは、パブリックDNSを使用するクラウドサービス内のVM上で実行されています。パブリックDNS名が "dns-abc"で、1.2.3.4を解決することを決定したとしましょう。
nifi.propertiesで指定した場合、nifi.web.http.host=1.2.3.4
はバインドに失敗します。私がnifi.web.http.host=dns-abc
と指定すると成功します。それでは、次のように私は/etc/hosts
にエントリを作成しました:
1.2.3.4 nifi-1
を、私はnifi.propertiesでnifi.web.http.host=nifi-1
を指定し、再度バインドが失敗しました。
編集:ここでは、スタックトレース
2017-09-18 01:02:30,610 WARN [main] org.apache.nifi.web.server.JettyServer Failed to start web server... shutting down.
java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:298)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.server.Server.doStart(Server.java:431)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:705)
at org.apache.nifi.NiFi.<init>(NiFi.java:160)
at org.apache.nifi.NiFi.main(NiFi.java:267)
完全エラーはありますか? – daggett
質問投稿を編集してスタックトレースを追加しました。 – MidnightJava
多分あなたのVMの 'dns-abc'が別のIPに解決されましたか? – daggett