Spark 独立模式集群
最近在看 Spark, 记录一下独立模式集群的搭建方法. 参考官网文档Spark Standalone Mode
Spark 集群架构
Spark 的集群架构类似下图这样, 可以使用不同类型的集群管理器.
查看 Glossary 来了解 Spark 集群中的一些名词.
- 每个 application 都有自己的 executor 进程, 并在 application 执行期间熟料保持不变. 这样可以在调用方和执行方之间隔离应用程序. 但是必须借助外部存储系统来共享数据.
- Spark 和集群管理器无关. 只要它能获取到 executor 进程, 并且这些进程之间能互相通信, 它就能在支持其他 application 的集群管理器上运行.
- 驱动程序必须能监听并接受来自 executors 的连接, 因此驱动程序必须是自 worker 节点网络可寻址的.
- 因为驱动程序在集群上调度任务,所以它应该靠近工作节点运行,最好是在同一局域网上运行. 如果您想远程向集群发送请求,最好向驱动程序打开RPC并让它从附近提交操作,而不是远离工作节点运行驱动程序.
安装和配置过程
独立模式的配置过程非常简单, 最复杂的地方应该就是免密登录的配置了.
去下载页面下载 Spark , 并放解压到每台机器上, 注意路径要相同.
在作为 master 的机器上配置到其他机器的免密登录.
将 $SPARK_DIR/conf 目录下的 slaves.template 拷贝为 slaves; 并将其他机器的 host 添加进 slaves:
1 | cp slaves.template slaves |
- 拷贝 conf 目录下的 spark-env.sh.template 命名为 spark-env.sh, 修改其中内容, 主要是 export 一些变量, 参考 Cluster Launch Scripts 和文件中的注释:
1 | cp spark-env.sh.template spark-env.sh |
- 使用 sbin 目录下的脚本一起启动或关闭 spark 集群, 或者单独启动一个或一些节点, 参考 Cluster Launch Scripts :
1 | ./sbin/start-all.sh |
独立模式集群原理
独立模式是 Spark 附带的一种简单的集群管理器, 易于设置. 它由一个 Master 节点作为集群管理器.
应用提交过程
- 驱动程序中, 对 rdd 的
Comments