Amazon EMR Spark Cluster:输出/结果不可见

时间:2015-02-18 17:02:22

标签: amazon-s3 apache-spark amazon-emr

我在Amazon EMR上运行Spark群集。我在集群上运行PageRank示例程序。

在本地计算机上运行程序时,我能够正确地看到输出。但这同样对EMR无效。 S3文件夹仅显示空文件。

我正在使用的命令: 要启动集群:

aws emr create-cluster --name SparkCluster --ami-version 3.2 --instance-type m3.xlarge --instance-count 2 \
  --ec2-attributes KeyName=sparkproj --applications Name=Hive \
  --bootstrap-actions Path=s3://support.elasticmapreduce/spark/install-spark  \
  --log-uri s3://sampleapp-amahajan/output/ \
  --steps Name=SparkHistoryServer,Jar=s3://elasticmapreduce/libs/script-runner/script-runner.jar,Args=s3://support.elasticmapreduce/spark/start-history-server 

添加作业:

aws emr add-steps --cluster-id j-9AWEFYP835GI --steps \
Name=PageRank,Jar=s3://elasticmapreduce/libs/script-runner/script-runner.jar,Args=[/home/hadoop/spark/bin/spark-submit,--deploy-mode,cluster,--master,yarn-cluster,--class,SparkPageRank,s3://sampleapp-amahajan/pagerank_2.10-1.0.jar,s3://sampleapp-amahajan/web-Google.txt,2],ActionOnFailure=CONTINUE

尝试几次失败后......我为作业输出创建了一个文本文件,并在本地计算机上成功创建。但是当我SSH进入群集时,我无法查看相同内容。我尝试了FoxyProxy来查看实例的日志,并且没有任何显示在那里。

请你告诉我哪里出错了?

谢谢!

2 个答案:

答案 0 :(得分:2)

您如何在本地编写文本文件?通常,EMR作业将其输出保存到S3,因此您可以使用outputRDD.saveToTextFile("s3n://<MY_BUCKET>")之类的内容。您也可以将输出保存到HDFS,但将结果存储到S3对于&#34;短暂的&#34;群集 - 您在其中配置EMR群集,提交作业,并在完成后终止。

答案 1 :(得分:0)

  

“在本地计算机上运行程序时,我可以看到   正确输出。但是在EMR上却不起作用。仅S3文件夹   显示空文件”

为了新手:

如果将输出打印到控制台,它将以本地模式显示,但是当您在EMR集群上执行时,reduce操作将在工作节点上执行,并且它们无法直接访问主/驱动程序节点的控制台!

使用正确的路径,您应该可以将结果写入s3。