Spark 独立模式集群
FJHHH Lv3

最近在看 Spark, 记录一下独立模式集群的搭建方法. 参考官网文档Spark Standalone Mode

Spark 集群架构

Spark 的集群架构类似下图这样, 可以使用不同类型的集群管理器.

查看 Glossary 来了解 Spark 集群中的一些名词.

  • 每个 application 都有自己的 executor 进程, 并在 application 执行期间熟料保持不变. 这样可以在调用方和执行方之间隔离应用程序. 但是必须借助外部存储系统来共享数据.
  • Spark 和集群管理器无关. 只要它能获取到 executor 进程, 并且这些进程之间能互相通信, 它就能在支持其他 application 的集群管理器上运行.
  • 驱动程序必须能监听并接受来自 executors 的连接, 因此驱动程序必须是自 worker 节点网络可寻址的.
  • 因为驱动程序在集群上调度任务,所以它应该靠近工作节点运行,最好是在同一局域网上运行. 如果您想远程向集群发送请求,最好向驱动程序打开RPC并让它从附近提交操作,而不是远离工作节点运行驱动程序.

安装和配置过程

独立模式的配置过程非常简单, 最复杂的地方应该就是免密登录的配置了.

  1. 下载页面下载 Spark , 并放解压到每台机器上, 注意路径要相同.

  2. 在作为 master 的机器上配置到其他机器的免密登录.

  3. 将 $SPARK_DIR/conf 目录下的 slaves.template 拷贝为 slaves; 并将其他机器的 host 添加进 slaves:

1
2
cp slaves.template slaves
vim slaves
  1. 拷贝 conf 目录下的 spark-env.sh.template 命名为 spark-env.sh, 修改其中内容, 主要是 export 一些变量, 参考 Cluster Launch Scripts 和文件中的注释:
1
2
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
  1. 使用 sbin 目录下的脚本一起启动或关闭 spark 集群, 或者单独启动一个或一些节点, 参考 Cluster Launch Scripts :
1
2
3
4
5
6
./sbin/start-all.sh

# or

./sbin/start-master.sh
./sbin/start-slaves.sh

独立模式集群原理

独立模式是 Spark 附带的一种简单的集群管理器, 易于设置. 它由一个 Master 节点作为集群管理器.

应用提交过程

  1. 驱动程序中, 对 rdd 的
 Comments