Amazon web services 如何将公共IP绑定到AmazonEC2中的spark节点?
我试图在两个不同区域的两个实例之间创建一个火花簇。由于它们不在同一个VPC/安全组中,我很难将一个区域的主设备连接到另一个区域的从设备(反之亦然)。到目前为止,我已经做了以下工作:Amazon web services 如何将公共IP绑定到AmazonEC2中的spark节点?,amazon-web-services,apache-spark,amazon-ec2,Amazon Web Services,Apache Spark,Amazon Ec2,我试图在两个不同区域的两个实例之间创建一个火花簇。由于它们不在同一个VPC/安全组中,我很难将一个区域的主设备连接到另一个区域的从设备(反之亦然)。到目前为止,我已经做了以下工作: `Caused by: java.io.IOException: Failed to connect to /172-31-23-69:48441` 编辑/etc/hosts文件以添加主服务器和从服务器的公共IP 54.208.204.190主机 13.113.105.113 slave01 将slave01添加到
`Caused by: java.io.IOException: Failed to connect to /172-31-23-69:48441`
54.208.204.190主机
13.113.105.113 slave01
`Caused by: java.io.IOException: Failed to connect to /172-31-23-69:48441`
export JAVA_HOME=/HOME/ubuntu/jdk1.8.0_151
导出SPARK\u WORKER\u CORES=8
导出SPARK\u MASTER\u HOST=ec2-54-208-204-190.compute-1.amazonaws.com
我已在SPARK_master_主机中分配了master的公共DNS,因为分配master的公共IP不起作用。它向我显示了以下错误:
MasterUI'无法在端口8080上绑定。
`Caused by: java.io.IOException: Failed to connect to /172-31-23-69:48441`
172-31-23-69是主机的私有IP。据我所知,slave01想通过master的这个私有IP连接到master,但由于它们不在同一个vpc中,slave01无法连接到master。我不确定为什么slave01首先要使用主机的私有IP,因为我在spark-env.sh和hosts文件中给出了主机的公共DNS和IP。另外,slave01如何知道master的私有IP也是一个有趣的问题
在这两种情况下,我都尝试将SPARK_LOCAL_IP变量分别设置为public IP,但这也不起作用。因此,如果有人能在这里为我指明任何方向,我将非常感激。提前感谢。当EC2实例具有与其关联的公共IPv4地址时,由于EC2中处理公共IP地址的方式,您无法将套接字绑定到公共IP地址 公共IP由Internet网关静态NAT到私有IP——实例本身不知道公共IP地址 (参见
ifconfig
的输出——公共IP不在那里,也不应该在那里——只有私有IP)
VPC对等允许您将多个VPC的网络互连在一起,允许实例跨帐户边界甚至AWS区域边界相互访问
可能有一种替代解决方案专门针对您正在做的事情,但将所有流量保持在私有IP空间的范围内似乎是一种很好的解决方法和最佳实践
请注意,互连的VPC必须具有唯一、不重叠的CIDR块。对等是不可传递的,因此将VPC A对等到B,然后将VPC B对等到C,不允许VPC A和C进行通信。任何两个具有需要通信的实例的VPC都必须直接对等
当EC2实例具有与其关联的公共IPv4地址时,由于EC2中处理公共IP地址的方式,您无法将套接字绑定到公共IP地址 公共IP由Internet网关静态NAT到私有IP——实例本身不知道公共IP地址 (参见
ifconfig
的输出——公共IP不在那里,也不应该在那里——只有私有IP)
VPC对等允许您将多个VPC的网络互连在一起,允许实例跨帐户边界甚至AWS区域边界相互访问
可能有一种替代解决方案专门针对您正在做的事情,但将所有流量保持在私有IP空间的范围内似乎是一种很好的解决方法和最佳实践
请注意,互连的VPC必须具有唯一、不重叠的CIDR块。对等是不可传递的,因此将VPC A对等到B,然后将VPC B对等到C,不允许VPC A和C进行通信。任何两个具有需要通信的实例的VPC都必须直接对等
您无法将套接字绑定到EC2实例的公共IP,因为公共IP由Internet网关静态NAT到私有IP。(参见
ifconfig
的输出——公共IP不存在,也不应该存在)。您能否对这两个VPC进行对等,以便为机器提供专用连接?看来你的建议奏效了。虽然只有四个地区可用,但这仍然是一个开始。谢谢你的帮助。你可以把你的评论作为一个答案,这样我可以检查它。再次感谢。您不能将套接字绑定到EC2实例的公共IP,因为公共IP通过Internet网关静态NAT到私有IP。(参见ifconfig
的输出——公共IP不存在,也不应该存在)。您能否对这两个VPC进行对等,以便为机器提供专用连接?看来你的建议奏效了。虽然只有四个地区可用,但这仍然是一个开始。谢谢你的帮助。你可以把你的评论作为一个答案,这样我可以检查它。再次感谢。