Apache spark 连接到在VM上运行的Spark

Apache spark 连接到在VM上运行的Spark,apache-spark,virtualbox,bigdata,Apache Spark,Virtualbox,Bigdata,我有一个Spark环境,在VirtualBox上的Ubuntu 16.2上运行。它配置为在本地运行,并在启动Spark时运行 /全部启动 我可以使用URL通过web ui在VM上访问它: 从主机(windows),我也可以使用VM IP:访问它 当我尝试从主机创建上下文时,问题出现了。我在eclipse中有一个使用maven的项目,我尝试运行以下代码: ConfigLoader.masterEndpoint = "spark://192.168.1.132:7077" val conf =

我有一个Spark环境,在VirtualBox上的Ubuntu 16.2上运行。它配置为在本地运行,并在启动Spark时运行

/全部启动

我可以使用URL通过web ui在VM上访问它:

从主机(windows),我也可以使用VM IP:访问它

当我尝试从主机创建上下文时,问题出现了。我在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)
我已尝试更改以下内容的URL:

ConfigLoader.masterEndpoint = "spark://192.168.1.132:7077"
没有成功

而且,如果我试图通过web(在VM中)直接访问主URL,我什么也得不到。我不知道这是否正常


我缺少什么?

在虚拟机中,转到
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.sh
start all.sh
停止和启动火花。现在,在您的程序中,您可以如下设置主控形状

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

谢谢这部分解决了我的问题。另一方面,我的应用程序和spark机器之间没有使用相同版本的spark/scala。这篇文章也帮助了我: