2017-02-23 60 views
-1

我使用AWS CLI和我啓動羣集使用下面的命令:AWS EMR - 上傳文件到應用程序主

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 

在那之後,我把一個文件分成主節點:

aws emr put --cluster-id j-NSGFSP57255P --key-pair-file "ChiaveEMR.pem" --src "./configS3.txt" 

該文件位於/home/hadoop/configS3.txt。 後來我推出一個步:

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 

但我得到這個錯誤:

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) 

可能是由於這樣的事實,「configS3.txt」位於主,而不是奴隸。 我怎麼能通過'configS3.txt'火花提交腳本?我也嘗試過S3,但它不起作用。任何解決方案在此先感謝

回答

0

由於您正在使用「--deploy模式羣集」,該驅動程序運行CORE/TASK實例而不是MASTER實例,所以是的,這是因爲您上傳文件到MASTER實例,但然後試圖訪問該文件的代碼未在MASTER實例上運行。

鑑於您遇到的錯誤是FileNotFoundException,它聽起來像您的應用程序代碼試圖直接打開它,這意味着當然,您不能直接使用S3路徑。 (你不能像新的File(「s3:// bucket/key」)那樣做,因爲Java不知道如何處理這個。)我的假設可能是錯誤的,因爲你沒有包含你的應用程序代碼或者解釋了你正在使用這個configS3.txt文件。

+0

我需要從S3或其他東西讀取configS3.txt。我將路徑「s3://tracceale/params/configS3.txt」傳遞給函數'fromFile',如下所示: for(line < - scala.io.Source.fromFile(logFile).getLines()) 這個函數不能讀取S3路徑,所以我需要找到另一個策略 –

0

莫里吉奧:你還在試圖解決your previous problem

在分佈式系統中,你需要的是可見的所有機器上的文件(其中S3://文件存儲提供),並使用一種與從分佈式文件系統的數據工作的API。其中SparkContext.hadoopRDD()提供。通過嘗試解決如何將文件放到每個虛擬機的本地磁盤上,你不會得到任何地方,因爲這不是你需要解決的問題:它是如何讓你的代碼從共享對象存儲中讀取數據。

對不起

+0

我該如何使用這個函數SparkContext.hadoopRDD()? –

+0

,上面滿是[星火編程指南(http://spark.apache.org/docs/latest/programming-guide.html#external-datasets) –

相關問題