gpt4 book ai didi

apache-spark - 在集群 : Initial job has not accepted any resources 上运行 Spark

转载 作者:行者123 更新时间:2023-12-01 12:24:56 24 4
gpt4 key购买 nike

  1. 我在 linode.com 上有一个远程 Ubuntu 服务器4核8G内存
  2. 我的远程 Ubuntu 服务器上有一个 Spark-2 集群,其中包含 1 个主服务器和 1 个从服务器。
  3. 我已经在我的 MacBook 上本地启动了 PySpark shell,通过以下方式连接到我在远程服务器上的主节点:

    $ PYSPARK_PYTHON=python3 /vagrant/spark-2.0.0-bin-hadoop2.7/bin/pyspark --master spark://[server-ip]:7077
  4. 我尝试从网站执行简单的 Spark 示例:

    from pyspark.sql import SparkSession

    spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()
    df = spark.read.json("/path/to/spark-2.0.0-bin-hadoop2.7/examples/src/main/resources/people.json")
  5. 我遇到了错误

    Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

  6. 我的服务器和本地计算机上都有足够的内存,但我一次又一次地遇到这个奇怪的错误。我的 Spark 集群有 6G,我的脚本只使用 4 个内核,每个节点有 1G 内存。

    [ Spark admin screenshot]

  7. 我用 Google 搜索了这个错误并尝试设置不同的内存配置,还在两台机器上禁用了防火墙,但它对我没有帮助。我不知道如何修复它。

  8. 有人遇到同样的问题吗?有什么想法吗?

最佳答案

您正在以客户端模式提交申请。这意味着驱动程序进程已在您的本地计算机上启动。

执行 Spark 应用程序时,所有机器都必须能够相互通信。执行程序很可能无法访问您的驱动程序进程(例如,它使用私有(private) IP 或隐藏在防火墙后面)。如果是这种情况,您可以通过检查执行程序日志来确认(转到应用程序,选择状态为 EXITED 的工作人员并检查 stderr。您“应该”看到该执行程序因 org.apache.spark.rpc.RpcTimeoutException 而失败。

有两种可能的解决方案:

  • 从您的集群可以到达的机器上提交申请。
  • 以集群模式提交申请。这将使用集群资源来启动驱动程序进程,因此您必须考虑到这一点。

关于apache-spark - 在集群 : Initial job has not accepted any resources 上运行 Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40854231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com