Standalone 模式配置及运行
### Spark Standalone 模式配置及运行详解
Spark Standalone 模式是一种独立的集群管理器,允许用户轻松地在自己的机器上或者一组机器上部署 Spark 集群。以下是关于该模式的具体配置和运行方式。
---
#### 1. 安装与环境准备
要成功部署 Spark Standalone 模式,首先需要完成以下准备工作:
- 下载并解压 Spark 发行版至指定目录。
```bash
tar -zxvf /opt/install/spark-3.1.2-bin-hadoop3.2.tgz -C /opt/modules
mv spark-3.1.2-bin-hadoop3.2/ spark-standalone
```
- 删除旧版本软链接,并创建指向新版本的软链接。
```bash
rm -rf spark
ln -s spark-standalone spark
```
- 确保所有节点间免密登录已配置完毕,这对于后续分发文件至关重要。
---
#### 2. 修改配置文件
进入 Spark 的 `conf` 文件夹后,需对若干重要配置文件进行编辑:
##### (1) **workers**
定义 Worker 节点列表,即哪些机器作为计算节点参与任务执行。
```bash
vim workers
```
添加类似如下内容(每台主机占一行):
```
worker1.example.com
worker2.example.com
worker3.example.com
```
##### (2) **spark-env.sh**
用于设置环境变量和其他高级选项。例如,分配给 Master 和 Workers 的内存、CPU 核心数等参数均可在此处声明。
```bash
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
```
常见配置项包括但不限于:
```bash
export SPARK_MASTER_HOST=master-node-ip-address
export SPARK_WORKER_CORES=8
export SPARK_WORKER_MEMORY=16g
```
---
#### 3. 分发 Spark 目录
为了让整个集群知晓最新改动过的 Spark 版本及相关配置信息,必须把当前修改好的 Spark 主目录复制到其余 Slave 节点上去。
```bash
scp -r ./spark-standalone hadoop@slave1:/usr/local/
scp -r ./spark-standalone hadoop@slave2:/usr/local/
...
```
---
#### 4. 启动服务
一切就绪之后即可依次启动 Master 和 Slaves 组件:
```bash
cd /usr/local/spark-standalone/sbin
./start-master.sh # 初始化 Master 节点
./start-slave.sh spark://<MASTER_IP>:7077 # 添加多个 Worker 至集群中
```
另外还存在一键脚本来简化这一步骤的操作流程——只需调用 `start-all.sh` 即可自动完成上述两步动作。
---
#### 5. 提交应用程序
一旦集群正常运转起来,则可通过命令行工具向其中提交待处理的任务实例。下面展示了一个典型例子:
```bash
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
--executor-memory 512m \
--total-executor-cores 1 \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.3.jar \
100
```
需要注意的是,在交互式 shell 场景下(`spark-shell`) ,虽然支持 Client Mode 默认行为,却不兼容 Cluster Mode 设定。
---
### 总结
以上便是围绕 Spark Standalone 模式的全方位讲解,涵盖了从基础安装到最后应用实践各个环节的知识要点。按照本文指引一步步操作下来,相信读者能够顺利构建起属于自己的第一个 Spark 集群!
---