AWS EMR 上的 Spark 独立模式
Spark standalone mode on AWS EMR
我能够 运行 遵循 documentation 在 AWS EMR 上进行 Spark 而不会遇到太多麻烦,但据我所知,它始终使用 YARN 而不是独立管理器。有什么方法可以轻松使用独立模式而不是 YARN 吗?我真的不想破解 bootstrap 脚本来关闭 yarn 并自己部署 spark master/workers。
我运行正在进入weird YARN related bug,我希望独立管理器不会发生这种情况。
据我所知,除非您返回旧的 ami 版本而不是使用 emr-release-label,否则无法在 EMR 上以独立模式 运行。然而,旧的 ami 版本会导致新版本的 Spark 出现其他问题,所以我不会那样做。
您可以做的是使用 Spark 启动普通的 EC2 实例,而不是使用 EMR。如果您安装了本地 Spark,请转到 ec2
文件夹并使用 spark-ec2
启动集群,如下所示:
./spark-ec2 --copy-aws-credentials --key-pair=MY_KEY --identity-file=MY_PEM_FILE.pem --region=MY_PREFERED_REGION --instance-type=INSTANCE_TYPE --slaves=NUMBER_OF_SLAVES --hadoop-major-version=2 --ganglia launch NAME_OF_JOB
我怀疑你有需要的 jar 文件,所以必须将它们复制到集群上(先复制到主服务器,ssh 到主服务器,然后从那里复制到从服务器。./spark-ec2/copy-dir
on master 会将一个目录复制到所有 slaves 上)。然后重启Spark:
./spark/sbin/stop-master.sh
./spark/sbin/stop-slaves.sh
./spark/sbin/start-master.sh
./spark/sbin/start-slaves.sh
并且您已准备好在独立模式下启动 Spark:
./spark/bin/spark-submit --deploy-mode client ...
我能够 运行 遵循 documentation 在 AWS EMR 上进行 Spark 而不会遇到太多麻烦,但据我所知,它始终使用 YARN 而不是独立管理器。有什么方法可以轻松使用独立模式而不是 YARN 吗?我真的不想破解 bootstrap 脚本来关闭 yarn 并自己部署 spark master/workers。
我运行正在进入weird YARN related bug,我希望独立管理器不会发生这种情况。
据我所知,除非您返回旧的 ami 版本而不是使用 emr-release-label,否则无法在 EMR 上以独立模式 运行。然而,旧的 ami 版本会导致新版本的 Spark 出现其他问题,所以我不会那样做。
您可以做的是使用 Spark 启动普通的 EC2 实例,而不是使用 EMR。如果您安装了本地 Spark,请转到 ec2
文件夹并使用 spark-ec2
启动集群,如下所示:
./spark-ec2 --copy-aws-credentials --key-pair=MY_KEY --identity-file=MY_PEM_FILE.pem --region=MY_PREFERED_REGION --instance-type=INSTANCE_TYPE --slaves=NUMBER_OF_SLAVES --hadoop-major-version=2 --ganglia launch NAME_OF_JOB
我怀疑你有需要的 jar 文件,所以必须将它们复制到集群上(先复制到主服务器,ssh 到主服务器,然后从那里复制到从服务器。./spark-ec2/copy-dir
on master 会将一个目录复制到所有 slaves 上)。然后重启Spark:
./spark/sbin/stop-master.sh
./spark/sbin/stop-slaves.sh
./spark/sbin/start-master.sh
./spark/sbin/start-slaves.sh
并且您已准备好在独立模式下启动 Spark:
./spark/bin/spark-submit --deploy-mode client ...