Spark集群部署

1.集群角色

   从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点,Master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点,维护Worker节点,Driver,Application的状态。Worker节点负责具体的业务运行。
从Spark程序运行的层面来看,Spark主要分为驱动器节点(提交任务)和执行器节点。参见下图

  • 每个节点可以起一个或多个Executor
  • 每个Executor由若干core组成,每个Executor的每个core一次只能执行一个Task。
    注意: 这里的core是虚拟的core而不是机器的物理CPU核,可以理解为就是Executor的一个工作线程。

2.安装部署

   Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,本文以最具代表性的Standalone集群部署模式。

2.1 部署前环境准备

  • 3台主机
主机名称IP
L0192.168.191.130
L2192.168.191.132
L3192.168.191.133
  • 安装配置完成JDK
  • 安装配置完成hadoop

2.2 部署spark

  1. 解压spark
$ tar -zxf ~/softwares/spark-2.1.1-bin-hadoop2.7.tgz -C ~
  1. 进入spark安装目录下的conf目录中,重命名“.template”结尾的文件
$ mv docker.properties.template docker.properties
$ mv log4j.properties.template log4j.properties
$ mv metrics.properties.template metrics.properties
$ mv slaves.template slaves
$ mv spark-defaults.conf.template spark-defaults.conf
$ mv spark-env.sh.template spark-env.sh
  1. 修改slaves
L0
L2
L3
  1. 修改spark-default.conf,用于配置Job History Server
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://L0:8020/directory
spark.eventLog.compress          true
  1. 修改spark-env. sh
SPARK_MASTER_HOST=l0
SPARK_MASTER_PORT=7077

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000
-Dspark.history.retainedApplications=3
-Dspark.history.fs.logDirectory=hdfs://l0:8020/directory"
  1. 分发配置好的spark安装包
$ scp -r spark-2.1.1-bin-hadoop2.7/ l2:~
$ scp -r spark-2.1.1-bin-hadoop2.7/ l3:~
  1. 启动spark(启动spark之前,确保HDFS已经启动)
$ sbin/start-all.sh
  1. 查看结果
    在3台机器中执行命令 jps
  • L0:成功启动mater和worker进程
  • L2,L3 成功启动worker进程
### Spark集群部署教程 #### 安装准备事项 为了成功部署Spark集群,需先完成一些准备工作。这包括下载并安装Java以及修改`hosts`文件来确保各节点间的正常通信[^1]。 ```bash sudo apt-get install openjdk-8-jdk ``` 编辑`/etc/hosts`文件,在每台机器上添加所有节点的IP地址和主机名映射关系: 192.168.x.x master 192.168.x.y worker1 ... 设置环境变量以便于命令行工具能够找到Java和其他必要的路径。通过新增或更新`.bashrc`或其他shell配置文件实现这一点。 #### 获取与解压Spark软件包 前往Apache官网获取最新版本的Spark压缩包,并将其放置到目标服务器上的合适位置进行解压操作。此过程同样适用于后续加入集群的新成员。 #### 主要配置调整 针对主节点(master),需要对默认提供的模板文件做出相应更改以适应实际需求。具体来说就是将位于`conf/`目录下的几个重要文件副本改名为正式使用的名称,比如把`spark-env.sh.template`更名为`spark-env.sh`,并将其中涉及的关键参数设定好;对于工作节点列表,则应创建或编辑`workers`文件列出所有的worker节点信息。 ```properties # conf/spark-env.sh export SPARK_MASTER_HOST=master ... ``` ```text # conf/workers worker1 worker2 ... ``` #### Worker节点配置同步 除了上述提到的核心改动外,还需保证其余辅助性的脚本、库文件等资源能够在全部参与者之间保持一致状态。通常做法是在初次搭建完成后利用SCP等方式复制已定制好的配置至其他地方,之后每当有新的变更发生时重复相同动作即可。 启动服务之前务必确认防火墙规则允许内部网络内的相互访问权限开放给所需端口范围之内。 #### 启动集群和服务验证 一切就绪后可以尝试执行官方文档里给出的一键式初始化指令集来开启整个分布式计算框架实例化流程。一旦看到控制台上显示出预期的日志输出即表明已经顺利完成基本构建任务。 ```bash start-all.sh ``` 最后一步便是测试连通性和功能可用性——编写简单的应用程序提交上去运行看能否得到正确结果返回作为最终检验标准之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值