ich aws cli und ich starten Sie einen Cluster mit dem folgenden Befehl:AWS EMR - Hochladen in die Anwendung Master-Datei
aws emr create-cluster --name "Config1" --release-label emr-5.0.0 --applications Name=Spark --use-default-role --ec2-attributes KeyName=ChiaveEMR --log-uri 's3://aws-logs-813591802533-us-west-2/elasticmapreduce/' --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.medium InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.medium
danach, habe ich eine Datei in den Master-Knoten:
aws emr put --cluster-id j-NSGFSP57255P --key-pair-file "ChiaveEMR.pem" --src "./configS3.txt"
Die Datei befindet sich in /home/hadoop/configS3.txt. Dann starte ich einen Schritt:
aws emr add-steps --cluster-id ID_CLUSTER --region us-west-2 --steps Type=Spark,Name=SparkSubmit,Args=[--deploy-mode,cluster,--master,yarn,--executor-memory,1G,--class,Traccia2014,s3://tracceale/params/traccia-22-ottobre_2.11-1.0Ale.jar,/home/hadoop/configS3.txt,30,300,2,"s3a://tracceale/Tempi1"],ActionOnFailure=CONTINUE
Aber ich bekomme diese Fehlermeldung:
17/02/23 14:49:51 ERROR ApplicationMaster: User class threw exception: java.io.FileNotFoundException: /home/hadoop/configS3.txt (No such file or directory)
java.io.FileNotFoundException: /home/hadoop/configS3.txt (No such file or directory)
wahrscheinlich aufgrund der Tatsache, dass ‚configS3.txt‘ auf dem Master befindet und nicht auf den Sklaven. Wie konnte ich 'configS3.txt' an Spark-Submit-Skript übergeben? Ich habe auch von S3 versucht, aber es funktioniert nicht. Irgendwelche Lösungen? Vielen Dank im Voraus
Ich muss ConfigS3.txt von S3 oder etwas anderes lesen. Ich übergebe den Pfad "s3: //tracceale/params/configS3.txt" an die Funktion 'fromFile' wie folgt: für (line <- scala.io.Source.fromFile (logFile) .getLines()) Diese Funktion kann einen S3-Pfad nicht lesen. Daher muss ich eine andere Strategie finden. –