连接到VM ​​

时间:2016-12-21 00:20:49

标签: apache-spark virtualbox bigdata

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

启动Spark时
  

./启动所有

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

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

enter image description here

当我尝试从主机创建上下文时出现问题。我在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)直接访问主网址,我就什么都得不到。我不知道它是否正常。

我错过了什么?

1 个答案:

答案 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.shstart-all.sh停止并启动Spark。现在,在您的程序中,您可以像下面一样设置主文件。

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