Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在docker容器中启动H2o群集,因为它无法绑定外部或主机ip_Java_Docker_Cluster Computing_H2o - Fatal编程技术网

Java 无法在docker容器中启动H2o群集,因为它无法绑定外部或主机ip

Java 无法在docker容器中启动H2o群集,因为它无法绑定外部或主机ip,java,docker,cluster-computing,h2o,Java,Docker,Cluster Computing,H2o,现在我们尝试使用H2o构建训练集群。通过运行java-jar./h2o.jar很容易使用,我们可以使用包含多个ip和端口的简单flatfile.txt来设置集群 但我们发现,不可能在docker容器中设置h2o簇。虽然我们可以启动多个容器来运行java-jar./h2o.jar并添加准备好的flatfile.txt,但h2o进程将尝试绑定本地(容器的eth0)ip,这与flatfile.txt中的ip不同。我们可以java-jar./h2o.jar-ip$ip设置flatfile.txt中的一个

现在我们尝试使用H2o构建训练集群。通过运行
java-jar./h2o.jar
很容易使用,我们可以使用包含多个ip和端口的简单
flatfile.txt
来设置集群

但我们发现,不可能在docker容器中设置h2o簇。虽然我们可以启动多个容器来运行
java-jar./h2o.jar
并添加准备好的
flatfile.txt
,但h2o进程将尝试绑定本地(容器的eth0)ip,这与
flatfile.txt
中的ip不同。我们可以
java-jar./h2o.jar-ip$ip
设置
flatfile.txt
中的一个,但是没有这个“外部”ip,h2o实例就无法运行


如果使用“docker run--network=host…”,它将起作用。

请参阅我对类似问题的回答。我描述了如何使用扁平文件和docker swarm启动H2O集群。基本上,在启动H2O之前,您必须在每个服务中运行一个脚本,以确定集群的正确IP地址。这是因为docker为每个服务分配两个IP。扁平文件需要为每个集群成员使用$HOSTNAME IP,这很难事先确定。

谢谢。是,它可以工作,但不允许暴露此容器的所有端口。实际上,我们希望在Kubernetes中运行h2o集群,并尝试在多个docker容器中进行测试。你知道应该暴露的确切端口吗?当你用-port N启动H2O时,H2O使用port N和port N+1。H2O似乎需要广播包,我们不应该暴露指定的端口以使其工作。