xml - 无法使用WSL将第二个节点加入Apache Ignite集群

标签 xml hadoop windows-subsystem-for-linux ignite

因此,我试图为两个节点使用default-config.xml设置一个Ignite群集:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="workDirectory" value="/mnt/e/apache-ignite"/>
    <property name="discoverySpi">
        <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
            <property name="ipFinder">
                <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                    <property name="addresses">
                        <list>
                            <value>node1:47500..47509</value>
                            <value>node2:47500..47509</value>
                        </list>
                    </property>
                </bean>
            </property>
        </bean>
    </property>
    <property name="communicationSpi">
        <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
            <property name="localPort" value="47100"/>
        </bean>
    </property>
    <property name="fileSystemConfiguration">
        <list>
            <bean class="org.apache.ignite.configuration.FileSystemConfiguration">
                <property name="name" value="igfs"/>
                <property name="ipcEndpointConfiguration">
                    <bean class="org.apache.ignite.igfs.IgfsIpcEndpointConfiguration">
                        <property name="type" value="TCP"/>
                        <property name="host" value="0.0.0.0"/>
                        <property name="port" value="10500"/>
                    </bean>
                </property>
                <property name="secondaryFileSystem">
                    <bean class="org.apache.ignite.hadoop.fs.IgniteHadoopIgfsSecondaryFileSystem">
                        <property name="fileSystemFactory">
                            <bean class="org.apache.ignite.hadoop.fs.CachingHadoopFileSystemFactory">
                                <property name="uri" value="hdfs://node1:9000/"/>
                                <property name="configPaths">
                                    <list>
                                        <value>/mnt/e/hadoop/etc/hadoop/core-site.xml</value>
                                    </list>
                                </property>
                            </bean>
                        </property>
                    </bean>
                </property>
            </bean>
        </list>
    </property>
</bean>

我可以使用ignite.sh分别启动两个节点,而不会出现任何问题。但是当我尝试同时加入两个节点时,我不断收到以下错误:
    class org.apache.ignite.IgniteException: Failed to start manager: GridManagerAdapter [enabled=true,  name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
        at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1067)
        at org.apache.ignite.Ignition.start(Ignition.java:349)
        at org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:300)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start manager:    GridManagerAdapter [enabled=true,   name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
        at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1965)
        at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1276)
        at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2045)
        at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1703)
        at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1117)
        at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1035)
        at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:921)
        at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:820)
        at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:690)
        at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:659)
        at org.apache.ignite.Ignition.start(Ignition.java:346)
        ... 1 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@1b5c3e5f], reconCnt=10, reconDelay=2000, maxAckTimeout=600000, soLinger=5, forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null, skipAddrsRandomization=false]
        at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:302)
        at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:943)
        at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1960)
        ... 11 more
   Caused by: class org.apache.ignite.spi.IgniteSpiException: Impossible to continue join, check if local discovery and communication ports are not blocked with firewall [addr=OmUsVdiDist0221/192.168.175.221:47500, req=TcpDiscoveryJoinRequestMessage [node=TcpDiscoveryNode [id=98e6971f-b477-4518-a25d-1d8ff8a33c46, consistentId=0:0:0:0:0:0:0:1%lo,127.0.0.1:47500, addrs=ArrayList [0:0:0:0:0:0:0:1%lo, 127.0.0.1], sockAddrs=HashSet [/0:0:0:0:0:0:0:1%lo:47500, /127.0.0.1:47500], discPort=47500, order=0, intOrder=0, lastExchangeTime=1602083346717, loc=true, ver=2.8.1#20200521-sha1:86422096, isClient=false], dataPacket=org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket@2b59501e, super=TcpDiscoveryAbstractMessage [sndNodeId=null, id=3a6cb930571-98e6971f-b477-4518-a25d-1d8ff8a33c46, verifierNodeId=null, topVer=0, pendingIdx=0, failedNodes=null, isClient=false]], discoLocalPort=47500, discoLocalPortRange=100]
        at org.apache.ignite.spi.discovery.tcp.ServerImpl.sendJoinRequestMessage(ServerImpl.java:1292)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:1032)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:427)
        at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2099)
        at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:299)
        ... 13 more
Failed to start grid: Failed to start manager: GridManagerAdapter [enabled=true, name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
我当前正在使用最新版本的Ignite(2.8.1)和两台Windows计算机(在wsl上运行Ignite)。
我不认为防火墙会阻止发现或通信端口,因为在启动节点之一时使用telnet可以正常工作。
administrator@node1:~$ telnet <node2-ip> 47100
Trying <node2-ip>...
Connected to <node2-ip>.
Escape character is '^]'.
0[GOi#^CConnection closed by foreign host.
administrator@node1:~$ telnet <node2-ip> 47500
Trying <node2-ip>...
Connected to <node2-ip>.
Escape character is '^]'.
Connection closed by foreign host.
我在这里迷路了。也许我在配置中做错了什么?
编辑
当使用powershell在第二个工作线程上运行ignite.bat时,该节点将被添加到拓扑中,而不会出现任何问题。

最佳答案

尝试在节点的发现和通信SPI中都设置正确的外部localAddress
否则,看来98e6971f节点只会确认其本地主机地址。

关于xml - 无法使用WSL将第二个节点加入Apache Ignite集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64257416/

相关文章:

css - 代码镜像光标位置偏移

ios - NSXMLParser 不适用于某些标签

java - 如何在命令行中使用 XPath 和 Saxon-HE 解析 HTML?

hadoop - impala 不支持 Hive 日期格式

java - 在 avro 模式中使用 "default"

windows - Windows 上 Ubuntu 上 Bash 上的 pem 文件权限

java - 为什么我的实体管理器返回空结果列表?

hadoop - 在 Hive 中使用 LIKE 或 RLIKE 连接表

linux - 如何从文件夹和子文件夹中删除文件单个命令linux

c++ - 如何重现#include_next编译时错误?