Amazon ec2 AmazonEC2中的spark提交
我在AmazonEC2实例中有一个linux实例。我在这个实例中手动安装了Spark,它运行良好。接下来,我想在亚马逊建立一个spark集群。 我在ec2文件夹中运行了以下命令:Amazon ec2 AmazonEC2中的spark提交,amazon-ec2,apache-spark,Amazon Ec2,Apache Spark,我在AmazonEC2实例中有一个linux实例。我在这个实例中手动安装了Spark,它运行良好。接下来,我想在亚马逊建立一个spark集群。 我在ec2文件夹中运行了以下命令: spark-ec2 -k mykey -i mykey.pem -s 1 -t t2.micro launch mycluster 它成功地启动了主节点和工作节点。我可以使用ssh-I mykey.pem ec2将ssh连接到主节点-user@master 我还导出了密钥:AWS\u ACCESS\u KEY\u I
spark-ec2 -k mykey -i mykey.pem -s 1 -t t2.micro launch mycluster
它成功地启动了主节点和工作节点。我可以使用ssh-I mykey.pem ec2将ssh连接到主节点-user@master
我还导出了密钥:AWS\u ACCESS\u KEY\u ID和AWS\u SECRET\u ACCESS\u KEY
我有一个jar文件(它有一个简单的Spark程序),我试图提交给master:
spark-submit --master spark://<master-ip>:7077 --deploy-mode cluster --class com.mycompany.SimpleApp ./spark.jar
spark提交--主spark://:7077--部署模式集群--类com.mycompany.SimpleApp./spark.jar
但我得到了以下错误:
Error connecting to master (akka.tcp://sparkMaster@<master>:7077).
Cause was: akka.remote.InvalidAssociation: Invalid address: akka.tcp://sparkMaster@<master>:7077
No master is available, exiting.
连接到主机(akka)时出错。tcp://sparkMaster@:7077).
原因是:akka.remote.InvalidAssociation:无效地址:akka。tcp://sparkMaster@:7077
没有可用的主机,正在退出。
我还更新了EC2安全设置,以便master接受所有入站流量:
类型:所有通信量,协议:所有,端口范围:所有,源:0.0.0.0/0初学者的一个常见错误是假设Spark通信遵循程序到主程序和主程序到工作程序的层次结构,而目前它没有 当您运行
spark submit
时,您的程序将连接到本地运行的驱动程序,该驱动程序将与主机通信以获得工作人员的分配。然后司机与工人沟通。您可以在中的许多图表中看到驱动程序(而不是主控程序)和工作程序之间的这种通信
运行
spark submit
的计算机必须能够与所有工作人员通信,而不仅仅是与主机通信。虽然您可以在安全区域中启动一个额外的EC2实例,允许访问主机和工作程序,或者更改安全区域以包括您的家用电脑,但最简单的方法可能是登录主机并运行spark submit
,主节点的pyspark
或spark shell
。初学者的一个常见错误是假设spark通信遵循程序到主节点和主节点到工作节点的层次结构,而目前它没有
当您运行spark submit
时,您的程序将连接到本地运行的驱动程序,该驱动程序将与主机通信以获得工作人员的分配。然后司机与工人沟通。您可以在中的许多图表中看到驱动程序(而不是主控程序)和工作程序之间的这种通信
运行
spark submit
的计算机必须能够与所有工作人员通信,而不仅仅是与主机通信。虽然您可以在安全区域中启动一个额外的EC2实例,允许访问主机和工作程序,或者更改安全区域以包括您的家用电脑,但最简单的方法可能是登录主机并运行spark submit
,主节点的pyspark
或spark shell
。微实例对于spark可能太小。我倾向于选择c3/c4实例,如果一项任务需要大量的CPU,那么像c3.8XL这样的大型实例可以减少联网的需要,并且可以通过低于零售价的“现货价格”支付一到两个小时的临时使用。对于spark来说,微型实例可能太小了。我倾向于选择c3/c4实例,如果一项任务需要大量的CPU,那么像c3.8XL这样的大型实例可以减少联网的需要,并且可以通过低于零售价的“现货价格”支付一到两个小时的临时使用费用。我认为这是可行的,但没有。我登录到主机并执行:./spark submit--masterspark://master:7077 --部署模式集群——类com.mycompany.SimpleApp file.jar,但奇怪的是,它抛出file.jar的FileNotFoundException。我可以在独立模式下执行,file.jar就在那里。前面我没有放--deploy mode cluster,它是在客户机模式下运行的。-deploy mode似乎会影响驱动程序运行的位置,即本地或工作区,这可能会影响文件需要运行的位置。您可以使用URL或HDF来分发JAR,这可能会更安全,因为应该发生的事情请参见:虽然它有效,但没有。我登录到主机并执行:./spark submit--masterspark://master:7077 --部署模式集群——类com.mycompany.SimpleApp file.jar,但奇怪的是,它抛出file.jar的FileNotFoundException。我可以在独立模式下执行,file.jar就在那里。前面我没有放--deploy mode cluster,它是在客户机模式下运行的。-deploy mode似乎会影响驱动程序运行的位置,即本地或工作区,这可能会影响文件需要运行的位置。您可以使用URL或HDF来分发JAR,这可能更安全,因为应该发生什么请参见: