aster: I have been elected leader! New state: ALIVE
16/09/23 19:59:26 INFO Master: Registering worker 10.0.2.15:36442 with 4 cores, 2.7 GB RAM
16/09/23 20:15:13 INFO Master: 10.0.2.15:42662 got disassociated, removing it.
16/09/23 20:15:13 INFO Master: 10.0.2.15:36442 got disassociated, removing it.
16/09/23 20:15:13 INFO Master: Removing worker worker-20160923195923-10.0.2.15-36442 on 10.0.2.15:36442
16/09/23 20:15:39 INFO Master: Registering worker 10.0.2.15:42462 with 4 cores, 2.7 GB RAM
Note: Master: I have been elected leader! New state: ALIVE
粗体就是Master URL.
$SPARK_HOME/sbin/start-slave.sh spark://$(hostname):7077
# or
# $SPARK_HOME/sbin/start-slave.sh spark://sycentos.localdomain:7077
输出:
starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/logs/spark-steven-org.apache.spark.deploy.worker.Worker-1-sycentos.localdomain.out
cat $SPARK_HOME/logs/spark-$(whoami)-org.apache.spark.deploy.worker.Worker-1-$(hostname).out | grep spark://
# or
# cat $SPARK_HOME/logs/spark-steven-org.apache.spark.deploy.worker.Worker-1-sycentos.localdomain.out
输出:
16/09/23 20:15:39 INFO Worker: Successfully registered with master spark://sycentos.localdomain:7077
这时,spart的master和slave服务都已经启动。
说明一下,关闭Master的命令是:
$SPARK_HOME/sbin/stop-master.sh
$SPARK_HOME/sbin/stop-slave.sh
在集群环境上,运行SimpleAPP
进入到SimpleApp的目录,并运行:
# run the project
$SPARK_HOME/bin/spark-submit --master spark://$(hostname):7077 --class SimpleApp target/scala-2.11/simple-application-project_2.11-1.0.jar
输出:
...
16/09/23 20:34:40 INFO StandaloneAppClient\(ClientEndpoint: Connecting to master spark://sycentos.localdomain:7077... ... 16/09/23 20:34:40 INFO StandaloneAppClient\)ClientEndpoint: Executor added: app-20160923203440-0000/0 on worker-20160923201537-10.0.2.15-42462 (10.0.2.15:42462) with 4 cores
...
通过查找关键字master和worker,可以确认是在集群上运行。
访问master web UI.
获取Master Web UI的地址。
从master服务的log里,可以找到master URL。
# Query master web UI url from master service log.
cat /opt/spark/logs/spark-steven-org.apache.spark.deploy.master.Master-1-sycentos.localdomain.out | grep MasterWebUI
输出:
16/09/23 19:45:43 INFO MasterWebUI: Bound MasterWebUI to 0.0.0.0, and started at http://10.0.2.15:8080
访问Master Web UI
通过浏览器访问http://localhost:8080/,可以看到有一个完成的应用。
现在,我们已经可以在集群环境中运行SimpleApp
理解Spark Application
- 一个Spark Application是一个运行在Spark环境中的Java应用。
- 需要在安装了Spark的机器上,通过Spark命令来启动。
- Spark Application是通过Spark Master URL和Spark Master Server交互,因此,不一定需要在Spark的Master或者Slave上启动。
- Spark Application是通过SparkConf和SparkContext与Spark系统交互。
下面请看
至此,我们已经写好了一个spark集群scala的应用。下一步请看:
Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用
Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用
参照