我在VirtualBox上运行Ubuntu 16.2上的Spark环境。它被配置为在本地运行,当我用
启动Spark时./启动所有
我可以使用以下网址通过web-ui在VM上访问它:http://localhost:8080
从主机(Windows),我也可以使用VM 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)直接访问主网址,我就什么都得不到。我不知道它是否正常。
我错过了什么?
答案 0 :(得分:2)
在您的虚拟机中,转到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
停止并启动Spark。现在,在您的程序中,您可以像下面一样设置主文件。
val spark = SparkSession.builder()
.appName("SparkSample")
.master("spark://192.168.1.132:7077")
.getOrCreate()