Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
Amazon web services 如何将公共IP绑定到AmazonEC2中的spark节点?_Amazon Web Services_Apache Spark_Amazon Ec2 - Fatal编程技术网

Amazon web services 如何将公共IP绑定到AmazonEC2中的spark节点?

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添加到

我试图在两个不同区域的两个实例之间创建一个火花簇。由于它们不在同一个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添加到$SPARK_HOME/conf/slaves文件中

  • 在$SPARK_HOME/conf/SPARK-env.sh中添加了以下内容:

    `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上绑定。

  • 因此,上述配置对我有效,我可以看到slave01成功注册到master,并且在Spark WebUI中显示了一个worker。但当我尝试运行SparkPi示例时,它无法添加执行器。在slave01的日志中,我发现了以下内容:

    `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进行对等,以便为机器提供专用连接?看来你的建议奏效了。虽然只有四个地区可用,但这仍然是一个开始。谢谢你的帮助。你可以把你的评论作为一个答案,这样我可以检查它。再次感谢。