2017-02-23 56 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) –

相关问题