《Spark Streaming实时流式大数据处理实战》 ——2.3.2 启动集群
2.3.2 启动集群
前面对Spark集群进行了一些基本的配置,一些在具体环境中用到的配置,会在后面介绍。在启动集群前还需要进行一项关键的设置。
由于Spark在进行集群中每个节点的启动、停止的时候,都用SSH进行登录操作,所以与Hadoop类似,我们也需要进行SSH免密登录的设置,在Mac OS中配置方式如下所述。
(1)在终端执行ssh-keygen -t rsa,之后一直按回车键,如果本机已经执行过该命令,可能会提示覆盖源文件,选择yes选项。
(2)执行cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,用于授权你的公钥到本地可以无须密码登录。
对于Linux操作系统,可以执行如下命令进行免密设置:
ssh-keygen -t rsa -P ""
cat ./.ssh/id_rsa.pub >> ./.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
值得注意的是,如果集群中不止一个slaves节点,那么需要在每台机器上进行免密登录设置,并将其IP配置到Master节点下的conf和slaves配置文件中,这样Spark才能在配置的每个slave节点启动Worker进程。
完成上述操作,就开始激动人心的一刻——启动Spark集群了。在Spark的安装目录下进入sbin目录,具体如下:
$ ll sbin/
drwxr-xr-x@ 24 xiaolitao staff 768 11 6 2017 ./
drwxr-xr-x@ 18 xiaolitao staff 576 11 5 2017 ../
-rwxr-xr-x@ 1 xiaolitao staff 2803 7 1 2017 slaves.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1429 7 1 2017 spark-config.sh*
-rwxr-xr-x@ 1 xiaolitao staff 5688 7 1 2017 spark-daemon.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1262 7 1 2017 spark-daemons.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1190 7 1 2017 start-all.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1274 7 1 2017 start-history-server.sh*
-rwxr-xr-x@ 1 xiaolitao staff 2050 7 1 2017 start-master.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1877 7 1 2017 start-mesos-dispatcher.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1423 7 1 2017 start-mesos-shuffle-
service.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1279 7 1 2017 start-shuffle-service.sh*
-rwxr-xr-x@ 1 xiaolitao staff 3151 7 1 2017 start-slave.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1527 7 1 2017 start-slaves.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1857 7 1 2017 start-thriftserver.sh*
-rwxrwxrwx@ 1 xiaolitao staff 1478 7 1 2017 stop-all.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1056 7 1 2017 stop-history-server.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1080 7 1 2017 stop-master.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1227 7 1 2017 stop-mesos-dispatcher.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1084 7 1 2017 stop-mesos-shuffle-
service.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1067 7 1 2017 stop-shuffle-service.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1557 7 1 2017 stop-slave.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1064 7 1 2017 stop-slaves.sh*
-rwxr-xr-x@ 1 xiaolitao staff 1066 7 1 2017 stop-thriftserver.sh*
我们会发现Spark提供了大量的shell脚本用于操作Spark集群,其中用得比较多的是以下3个脚本文件。
* start-all.sh/stop-all.sh:用于启动集群上的所有节点和停止集群上的所有节点。
* start-master.sh/stop-master.sh:用于单独启动Master进程和停止该进程。
* start-slave.sh/stop-slave.sh:用于启动指定节点的Worker进程和停止该节点的所有Worker进程。
我们直接通过start-all.sh的脚本来启动配置的所有节点,包括一个Master进程和两个Worker进程,代码如下:
$ sbin/start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /Users/xiaolitao/
Tools/spark-2.2.0-bin-hadoop2.7//logs/spark-xiaolitao-org.apache.spark.
deploy.master.Master-1-LITAOXIAO-MC0.out
localhost: starting org.apache.spark.deploy.worker.Worker, logging to
/Users/xiaolitao/Tools/spark-2.2.0-bin-hadoop2.7//logs/spark-xiaolitao-
org.apache.spark.deploy.worker.Worker-1-LITAOXIAO-MC0.out
localhost: starting org.apache.spark.deploy.worker.Worker, logging to
/Users/xiaolitao/Tools/spark-2.2.0-bin-hadoop2.7//logs/spark-xiaolitao-
org.apache.spark.deploy.worker.Worker-2-LITAOXIAO-MC0.out
localhost: starting org.apache.spark.deploy.worker.Worker, logging to
/Users/xiaolitao/Tools/spark-2.2.0-bin-hadoop2.7//logs/spark-xiaolitao-
org.apache.spark.deploy.worker.Worker-3-LITAOXIAO-MC0.out
Spark提供了一套完整的Web UI用于监控整个集群的情况,默认的访问端口是8080,我们也可以在之前的spark-env.sh中通过SPARK_MASTER_WEBUI_PORT/ SPARK_WORKER_WEBUI_PORT参数进行修改。集群启动成功后,访问该页面如图2.6所示。
图2.6 Spark集群网页监控
Spark集群中Master节点的默认端口号是7077,我们可以通过SPARK_MASTER_ PORT参数在spark-env.sh中进行配置。从图2.6中可以看出,之前我们配置了两个Worker进程实例,每个Worker实例为2核7GB内存,总共是4核14GB内存。
我们看到,目前显示的Worker资源都是空闲的,当向Spark集群提交应用之后,Spark就会分配相应的资源给程序使用,可以在该页面看到资源的使用情况。
- 点赞
- 收藏
- 关注作者
评论(0)