2016-09-20 79 views
0

我们很难在EMR上运行python火花作业。在EMR上运行python火花

aws emr add-steps --cluster-id j-XXXXXXXX --steps \ 
Type=CUSTOM_JAR,Name="Spark Program",\ 
Jar="command-runner.jar",ActionOnFailure=CONTINUE,\ 
Args=["spark-submit",--deploy-mode,cluster,--master,yarn,s3://XXXXXXX/pi.py,2] 

我们运行相同pyspark compute pi script as the AWS page suggests

运行此脚本,但它运行永远计算圆周。在本地机器上完成需要几秒钟。我们也尝试了客户端模式。在客户端模式下,它使我们在本地传输文件。

16/09/20 15:20:32 INFO Client: 
    client token: N/A 
    diagnostics: N/A 
    ApplicationMaster host: N/A 
    ApplicationMaster RPC port: -1 
    queue: default 
    start time: 1474384831795 
    final status: UNDEFINED 
    tracking URL: http://XXXXXXX.ec2.internal:20888/proxy/application_1474381572045_0002/ 
    user: hadoop 
16/09/20 15:20:33 INFO Client: Application report for application_1474381572045_0002 (state: ACCEPTED) 
Repeats this last command over and over... 

有谁知道如何没有它永远运行运行EMR的example python spark pi脚本?

回答

1

当您永远以ACCEPTED状态看到作业时,这意味着它并未实际运行,而是等待YARN拥有足够的资源来运行应用程序。通常这是因为您已经有一些其他的YARN应用程序正在运行并占用资源。查明这种情况的最简单方法是查看主节点端口8088上的YARN ResourceManager。你也可以运行命令“yarn application -list”,如果你有ssh到主节点。

+0

我们使用最小的实例类型来测试pyspark是否在继续之前工作。事实证明,m1.medium太小,甚至无法在aws网站上运行示例作业。我从来不会猜到这一点。谢谢乔纳森。 –