pyspark - 如何在 EMR 上启动 master 和 slave
问题描述
我是 EMR 新手,现在无法在 EMR 上运行我的 Spark 应用程序。我的问题是如何在 EMR 上使用 $start-master.sh 和 $start-slave.sh。我将这 2 个命令放入 bash 文件并上传到 S3 以进行引导。
aws emr create-cluster --release-label $release_label \
--instance-groups InstanceGroupType="MASTER",InstanceCount=$instance_count,InstanceType=$instance_type,BidPrice=0.2,Name="MASTER" \
InstanceGroupType="CORE",InstanceType=$instance_type,InstanceCount=$instance_count,BidPrice=0.2,Name="CORE" \
--auto-terminate \
--use-default-roles \
--name knx-attribution-spark-$product-$environment-$build_number \
--log-uri s3://knx-logs/emr/knx-attribution-spark-$product-$environment \
--ec2-attributes KeyName=$keypair,SubnetId=$subnet,EmrManagedMasterSecurityGroup=$sg1,EmrManagedSlaveSecurityGroup=$sg1,AdditionalMasterSecurityGroups=$sg2,AdditionalSlaveSecurityGroups=$sg2 \
--tags Name="knx-emr-attribution-spark-$product-$environment" Environment=$environment \
--applications Name=Spark Name=Hadoop\
--bootstrap-actions Path="s3://${BOOTSTRAP_FILE}" \
--steps Type=Spark,Name=Stage,ActionOnFailure=CONTINUE,Args=[--deploy-mode,client,--packages,org.mongodb.spark:mongo-spark-connector_2.11:2.3.0,--driver-memory,8g,--executor-memory,4g,--num-executors,4,--py-files,s3://${FILE_ZIP},--master,spark://127.0.0.1:7077,s3://${BUCKET}]
引导文件是:
./spark/sbin/start-master.sh
./spark/sbin/start-slave.sh spark://127.0.0.1:7077
它总是抛出这个错误:
/emr/instance-controller/lib/bootstrap-actions/1/install_lib.sh: line 4: start-master.sh: command not found
解决方案
在 EMR 上,Spark 在 YARN 上运行,而不是在独立模式下运行。除非我没有看到其他错误,否则您唯一需要更改的是从 spark-submit 步骤的参数中删除“--master,spark://127.0.0.1:7077”。要使用的正确参数是“--master,yarn”,但这是 EMR 的默认值,因此您无需指定。
推荐阅读
- gnuplot - 在gnuplot中,图例的字母和线条没有对齐
- c++ - 重新分配后,指向自己的结构成员的 C++ 指针具有不同的值
- c# - 无法将 A 隐式转换为 A
> 其中 B 继承自 C - php - 使用 Curl 通过 PHP 发送 SMS
- .net - 从 SQL Server 到前端的实时更新
- powershell - 使用包含 x 列的 3 个文件中的数据我需要在列帐户中输出数据
- php - 网站 SSL 完成后,我无法在 php 中获取 $_POST 参数
- dom - 客户端代码:查找选中了哪个单选按钮
- vb.net - 循环遍历 DataTable 中的特定行
- typo3 - 后台允许上传FAL中TYPO3中的DOCUMENT、EXCEL文件