当前位置: 首页 > news >正文

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 集群!

---

http://www.xdnf.cn/news/449443.html

相关文章:

  • RabbitMQ是什么?应用场景有哪些?
  • 赋能行业数字化转型-报关单识别接口
  • 通用软件项目技术报告 - 导读II
  • 跨域的几种方案
  • MySQL 存储函数[特殊字符] VS 存储过程[特殊字符]
  • 二手车估值接口介绍
  • sql sql复习
  • python如何设置excel单元格边框样式
  • C++ 在 Windows 的开发经验与解决方案
  • 【Linux网络】TCP全连接队列
  • Android学习总结之kotlin篇(二)
  • 更换git位置并在pycharm中重新配置
  • Vue.js 组件开发指南
  • 力扣144题:二叉树的前序遍历(递归)
  • 倍福 TC3 PID 功能块 引脚功能及PID控制用法
  • windows运行bat闪退
  • 「Mac畅玩AIGC与多模态37」开发篇32 - 基于工作流的双插件信息整合与展示优化
  • 抢跑「中央计算+区域控制」市场,芯驰科技高端智控MCU“芯”升级
  • 微机原理与接口技术知识点总结——8086微处理器ddddd
  • C++红黑树
  • Redis的Pipeline和Lua脚本适用场景是什么?使用时需要注意什么?
  • PH热榜 | 2025-05-14
  • 《AI大模型应知应会100篇》第62篇:TypeChat——类型安全的大模型编程框架
  • 【面试 · 五】CSS个别重点总结
  • 论系统安全架构设计及其应用~系统架构师论文
  • 三种常见接口测试工具(Apipost、Apifox、Postman)
  • 【NLP 计算句子之间的BLEU和ROUGE分数】
  • 代理IP与VPN的区别,如何根据需求选择?
  • Vector和list
  • FastAPI + OpenAI 模型 的 GitHub 项目结构模板