【问题标题】:Amazon EMR Spark Cluster: output/result not visibleAmazon EMR Spark 集群:输出/结果不可见
【发布时间】:2015-02-18 17:02:22
【问题描述】:

我在 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 来查看实例的日志,但那里没有任何显示。

你能告诉我哪里出错了吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢蒂莫西!我早些时候尝试过它,它已经奏效了。我错误地认为这是集群启动命令中的错误。再次感谢!
    【解决方案2】:

    “在我的本地机器上运行程序时,我可以看到 正确输出。但同样不适用于 EMR。仅 S3 文件夹 显示空文件”

    为了新手的利益:

    如果你打印输出到控制台,它会以本地模式显示,但是当你在 EMR 集群上执行时,reduce 操作将在工作节点上执行,它们不能直接到主/驱动节点的控制台!

    通过正确的路径,您应该能够将结果写入 s3。

    【讨论】:

      猜你喜欢
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      相关资源
      最近更新 更多