【问题标题】:Cannot do simple task on ec2 spark cluster from local pyspark无法从本地 pyspark 在 ec2 spark 集群上执行简单任务
【发布时间】:2014-08-17 21:28:42
【问题描述】:

我正在尝试从我的 mac 执行 pyspark 以在 EC2 spark 集群上进行计算。
如果我登录到集群,它会按预期工作:

$ ec2/spark-ec2 -i ~/.ec2/spark.pem -k spark login test-cluster2
$ spark/bin/pyspark

然后做一个简单的任务

>>> data=sc.parallelize(range(1000),10)`
>>> data.count()

按预期工作:

14/06/26 16:38:52 INFO spark.SparkContext: Starting job: count at <stdin>:1
14/06/26 16:38:52 INFO scheduler.DAGScheduler: Got job 0 (count at <stdin>:1) with 10 output partitions (allowLocal=false)
14/06/26 16:38:52 INFO scheduler.DAGScheduler: Final stage: Stage 0 (count at <stdin>:1)
...
14/06/26 16:38:53 INFO spark.SparkContext: Job finished: count at <stdin>:1, took 1.195232619 s
1000

但是现在如果我在本地机器上尝试同样的事情,

$ MASTER=spark://ec2-54-234-204-13.compute-1.amazonaws.com:7077 bin/pyspark

似乎无法连接到集群

14/06/26 09:45:43 INFO AppClient$ClientActor: Connecting to master spark://ec2-54-234-204-13.compute-1.amazonaws.com:7077...
14/06/26 09:45:47 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory
...
  File "/Users/anthony1/git/incubator-spark/python/lib/py4j-0.8.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o20.collect.
: org.apache.spark.SparkException: Job aborted: Spark cluster looks down
14/06/26 09:53:17 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory

我认为问题出在 ec2 安全性上,但即使向主从安全组添加入站规则以接受所有端口,它也无济于事。

任何帮助将不胜感激!

其他人在邮件列表上问同样的问题 http://apache-spark-user-list.1001560.n3.nabble.com/Deploying-a-python-code-on-a-spark-EC2-cluster-td4758.html#a8465

【问题讨论】:

    标签: amazon-web-services amazon-ec2 apache-spark


    【解决方案1】:

    spark-ec2 脚本将 EC2 中的 Spark 集群配置为独立的,这意味着它不能用于远程提交。在发现它不受支持之前,我一直在为您描述的相同错误而苦苦挣扎。不幸的是,消息错误不正确。

    所以你必须复制你的东西并登录到 master 来执行你的 spark 任务。

    【讨论】:

    【解决方案2】:

    根据我的经验Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory 通常意味着您不小心将内核设置得太高,或者将执行程序内存设置得太高 - 即高于您的节点实际拥有的内存。

    其他不太可能的原因,可能是您的 URI 错误并且您没有真正连接到主服务器。有一次我在/run 分区为 100% 时看到了这个问题。

    更不可能的是,您的集群实际上可能已关闭,您需要重新启动 spark 工作程序。

    【讨论】:

    • 感谢 samthebest。第一个和第三个似乎不是原因,因为如果从主节点本身提交,我可以按预期执行任务。所以集群肯定在工作。第二个原因,可能也不是因为我故意输入了错误的 URI 进行测试并得到了不同的错误。其实master节点日志上的tail -f也显示了相应的错误
    • 尝试在所有节点上运行 df -h 和 df -i(远景)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多