2017-06-28 20 views
0

マルチキャストIPディスカバリ(AWS EC2)ではなくスタティックIPディスカバリを使用するApache Igniteクラスタを構築しています。Apache IgniteスタティックIPノードの検出

Iは次のように構成したので(https://apacheignite.readme.io/docs/cluster-config#static-ip-based-discovery):

[15:04:36385] Iノードを起動する

<property name="discoverySpi"> 
    <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> 
     <property name="ipFinder"> 
     <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> 
      <property name="addresses"> 
      <list> 
       <value>host1.example.com</value> 
       <value>host2.example.com</value> 
       <value>host3.example.com</value> 
      </list> 
      </property> 
     </bean> 
     </property> 
    </bean> 
    </property> 

、私は、次のエラーを見ることができる[警告] [メイン] [TcpDiscoverySpi] IPファインダからのアドレスへの接続に失敗しました(IPファインダのアドレスが正しいことと、すべてのホストマシンでファイアウォールが無効になっていることを確認してください):[host1.example.com/10.0.21.223:47501、host2.example.com/10.0 .21.207:47501、host3.example.com/10.0.21.191:47501]

Fromこれは、Igniteがホスト名をipアドレスに正しく解決したが、クラスタを形成するために接続できないことがわかりました。これらのホストはすべてAWS EC2の同じサブネットにあり、ポート47500はそれらの間でオープンであることが確認されています(47501参照がわかりません)。

私はまた、ホスト名ではなくIPアドレスだけを使用しようとしましたが、結果は同じです。

ここに何か不足していますか?

Igniteは各サーバーでDockerコンテナとして実行されています。 Igniteに必要なTCPポートは公開され、機能します。

完全なログ:発火のための

[15:55:18,231][INFO][main][IgniteKernal] Config URL: file:/apache-ignite-fabric-1.6.0-bin/config/default-config.xml 
[15:55:18,231][INFO][main][IgniteKernal] Daemon mode: off 
[15:55:18,231][INFO][main][IgniteKernal] OS: Linux 4.4.19-29.55.amzn1.x86_64 amd64 
[15:55:18,231][INFO][main][IgniteKernal] OS user: root 
[15:55:18,231][INFO][main][IgniteKernal] Language runtime: Java Platform API Specification ver. 1.8 
[15:55:18,232][INFO][main][IgniteKernal] VM information: Java(TM) SE Runtime Environment 1.8.0_131-b11 Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.131-b11 
[15:55:18,233][INFO][main][IgniteKernal] VM total memory: 3.0GB 
[15:55:18,233][INFO][main][IgniteKernal] Remote Management [restart: on, REST: on, JMX (remote: on, port: 49112, auth: off, ssl: off)] 
[15:55:18,233][INFO][main][IgniteKernal] IGNITE_HOME=/apache-ignite-fabric-1.6.0-bin 
[15:55:18,233][INFO][main][IgniteKernal] VM arguments: [-Xms1g, -Xmx1g, -XX:+AggressiveOpts, -XX:MaxMetaspaceSize=256m, -DIGNITE_QUIET=true, -DIGNITE_SUCCESS_FILE=/apache-ignite-fabric-1.6.0-bin/work/ignite_success_a8723f31-1954-4ea4-b190-762a36088140, -Dcom.sun.management.jmxremote, -Dcom.sun.management.jmxremote.port=49112, -Dcom.sun.management.jmxremote.authenticate=false, -Dcom.sun.management.jmxremote.ssl=false, -DIGNITE_HOME=/apache-ignite-fabric-1.6.0-bin, -DIGNITE_PROG_NAME=/apache-ignite-fabric-1.6.0-bin/bin/ignite.sh, -Xmx3g, -XX:+UseG1GC] 
[15:55:18,234][INFO][main][IgniteKernal] Configured caches ['ignite-marshaller-sys-cache', 'ignite-sys-cache', 'ignite-atomics-sys-cache'] 
[15:55:18,234][WARNING][main][IgniteKernal] Peer class loading is enabled (disable it in production for performance and deployment consistency reasons) 
[15:55:18,238][INFO][main][IgniteKernal] 3-rd party licenses can be found at: /apache-ignite-fabric-1.6.0-bin/libs/licenses 
[15:55:18,284][INFO][main][IgniteKernal] Non-loopback local IPs: 172.17.0.2, fe80:0:0:0:42:acff:fe11:2%eth0 
[15:55:18,284][INFO][main][IgniteKernal] Enabled local MACs: 0242AC110002 
[15:55:18,294][INFO][main][IgnitePluginProcessor] Configured plugins: 
[15:55:18,295][INFO][main][IgnitePluginProcessor] ^-- None 
[15:55:18,295][INFO][main][IgnitePluginProcessor] 
[15:55:18,347][INFO][main][TcpCommunicationSpi] IPC shared memory server endpoint started [port=48100, tokDir=/apache-ignite-fabric-1.6.0-bin/work/ipc/shmem/cb41f1a5-d2f5-453d-a1c5-e008c1e12d2a-62] 
[15:55:18,348][INFO][main][TcpCommunicationSpi] Successfully bound shared memory communication to TCP port [port=48100, locHost=0.0.0.0/0.0.0.0] 
[15:55:18,362][INFO][main][TcpCommunicationSpi] Successfully bound to TCP port [port=47100, locHost=0.0.0.0/0.0.0.0] 
[15:55:18,383][WARNING][main][NoopCheckpointSpi] Checkpoints are disabled (to enable configure any GridCheckpointSpi implementation) 
[15:55:18,405][WARNING][main][GridCollisionManager] Collision resolution is disabled (all jobs will be activated upon arrival). 
[15:55:18,408][WARNING][main][NoopSwapSpaceSpi] Swap space is disabled. To enable use FileSwapSpaceSpi. 
[15:55:18,409][INFO][main][IgniteKernal] Security status [authentication=off, tls/ssl=off] 
[15:55:18,652][INFO][main][GridTcpRestProtocol] Command protocol successfully started [name=TCP binary, host=0.0.0.0/0.0.0.0, port=11211] 
[15:55:18,719][INFO][main][TcpDiscoverySpi] Successfully bound to TCP port [port=47500, localHost=0.0.0.0/0.0.0.0] 
[15:55:21,746][WARNING][main][TcpDiscoverySpi] Failed to connect to any address from IP finder (make sure IP finder addresses are correct and firewalls are disabled on all host machines): [/10.0.21.191:47500, /10.0.21.207:47500, /10.0.21.223:47500] 
+0

を設定することが可能です。 –

+0

元の投稿にログが追加されました –

答えて

0

デフォルトのポートは47500ですが、あなたが見ることができるように、ログにそれが47501に接続しようとする:

は、アドレス一覧でポートを指定してみてください:

<value>host1.example.com:47500</value> 

こちらの商品もチェックしています:https://apacheignite.readme.io/v2.0/docs/aws-deploymentあなたのケースでは便利です。

+0

私はすでにそれを試してみましたが、違いはありませんでした。 47501はローカルポートを指していると思います。 AWSデプロイメントドキュメントでは、マルチキャストの検出(AWS EC2ではマルチキャストが禁止されています)の代わりにS3バケットを使用していますが、これは私が望んでいないものです。 –

+1

完全に着火ログを共有できますか? – Michael

+0

元の投稿にログが追加されました –

0

まず、Igniteを1.6から1.9にアップデートすることをお勧めします。

次に、hereのように、ポートを指定します。

- net = hostを使用してドッカーを実行すると、コンテナ内のアプリケーションにホストからのネットワークインターフェイスが表示されます。これは助けになるはずです。

はまた、アドレスとポートノードがバインドされた上で見つけることが可能になるので、ノードからの完全なログを提供special S3 IpFinder