我是EMR的新手,现在我无法在EMR上运行我的Spark应用程序。 我的问题是如何在EMR上使用$ start-master.sh和$ start-slave.sh。 我将这两个命令放入一个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
答案 0 :(得分:0)
在尝试使用.sh文件之前,请确保它们是可执行文件。
如果不尝试使用此命令将其作为可执行文件:
chmod +x start-master.sh
然后尝试运行脚本。
答案 1 :(得分:0)
您不能以独立模式在Amazon EMR上运行Spark。
答案 2 :(得分:0)
在EMR上,Spark在YARN上运行,而不是在独立模式下运行。除非我没有发现其他错误,否则您唯一需要更改的就是从“火花提交”步骤的参数中删除“ --master,spark://127.0.0.1:7077”。正确使用的参数为“ --master,yarn”,但这是EMR的默认参数,因此您无需指定该参数。