【问题标题】:Connect to Spark running on VM连接到在 VM 上运行的 Spark
【发布时间】:2017-09-19 11:07:04
【问题描述】:

我在 Ubuntu 16.2 上通过 VirtualBox 运行 Spark 环境。它配置为在本地运行,当我使用

启动 Spark 时

./start-all

我可以在 VM 上通过 web-ui 使用 URL 访问它:http://localhost:8080

从主机(Windows),我也可以使用虚拟机 IP 访问它:http://192.168.x.x:8080

当我尝试从我的主机创建上下文时出现问题。我在eclipse中有一个使用maven的项目,我尝试运行以下代码:

ConfigLoader.masterEndpoint = "spark://192.168.1.132:7077"

val conf = new SparkConf().setMaster(ConfigLoader.masterEndpoint).setAppName("SimpleApp")
val sc = new SparkContext(conf)

我收到了这个错误:

16/12/21 00:52:05 INFO StandaloneAppClient$ClientEndpoint: Connecting to master spark://192.168.1.132:8080...
16/12/21 00:52:06 WARN StandaloneAppClient$ClientEndpoint: Failed to connect to master 192.168.1.132:8080
org.apache.spark.SparkException: Exception thrown in awaitResult
    at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:77)

我已尝试更改以下网址:

ConfigLoader.masterEndpoint = "spark://192.168.1.132:7077"

不成功。

另外,如果我尝试通过网络(VM 中的http://localhost:7077)直接访问主 URL,我什么也得不到。不知道是不是正常的。

我错过了什么?

【问题讨论】:

    标签: apache-spark virtualbox bigdata


    【解决方案1】:

    在您的 VM 中转到 spark-2.0.2-bin-hadoop2.7/conf 目录并使用以下命令创建 spark-env.sh 文件。

    cp spark-env.sh.template spark-env.sh
    

    在 vi 编辑器中打开 spark-env.sh 文件并添加以下行。

    SPARK_MASTER_HOST=192.168.1.132
    

    使用 stop-all.shstart-all.sh 停止和启动 Spark。现在在你的程序中,你可以像下面这样设置主人。

    val spark = SparkSession.builder()
      .appName("SparkSample")
      .master("spark://192.168.1.132:7077")
      .getOrCreate()
    

    【讨论】:

    • 谢谢!,这解决了我的部分问题。另一部分是我的应用程序和火花机之间没有使用相同版本的 spark/scala。这篇文章对我也有帮助:stackoverflow.com/questions/38559597/…
    猜你喜欢
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2016-04-16
    • 1970-01-01
    • 2020-09-03
    相关资源
    最近更新 更多