【问题标题】:Cannot execute spark task on remote EC2 instance无法在远程 EC2 实例上执行 spark 任务
【发布时间】:2018-07-18 02:14:53
【问题描述】:

我在 EC2 实例上运行 Spark 2.3。所有端口都是开放的,我用“start-master.sh”和“start-slave.sh”启动了spark。我尝试通过以下代码使用 Java 进行连接:

 SparkConf sparkConf = new SparkConf()
            .setAppName("myappname")
            .setMaster(System.getProperty("spark.master", "spark://<EC2 DNS>:7077"));

它似乎已连接,我可以在 Web UI 中看到它。但是,当我尝试实际执行某些操作时,我收到以下错误消息:

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

应该有足够的资源可用,包括用于这项工作的内核和内存,我认为这是驱动程序(我的本地机器)和工作人员(EC2 上)无法通信的问题。

【问题讨论】:

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


    【解决方案1】:

    我可以通过以下方式解决这个问题:

    用 Java 更新我的 SparkConf:

    SparkConf sparkConf = new SparkConf()
        .setAppName("myappname")
        .setMaster(System.getProperty("spark.master", "spark://<EC2 DNS>:7077"))
        .set("spark.driver.host", "localhost")
        .set("spark.driver.port", String.valueOf(23584));
    

    然后我运行它来创建一个 SSH 隧道:

    ssh -R 23584:localhost:23584 ubuntu@<EC2 DNS>
    

    你可以使用任何端口,我随机选择了 23584。我仍然遇到问题,但这似乎已经解决了我上面遇到的错误。

    【讨论】:

      猜你喜欢
      • 2018-04-22
      • 2019-02-19
      • 2014-08-17
      • 1970-01-01
      • 2014-05-22
      • 2021-07-11
      • 2019-09-16
      • 2020-12-07
      • 2016-10-26
      相关资源
      最近更新 更多