Spark介绍以及集群搭建

Spark介绍:

一、Spark是什么?

Spark 是一个开源的分布式大数据处理引擎,由加州大学伯克利分校 AMPLab 于 2009 年开发,2014 年成为 Apache 顶级项目。它以高速处理大规模数据简洁的 API 设计著称,广泛应用于数据处理、分析、机器学习和流计算等场景。

二、Spark的核心特点与优势

1.高速处理能力

  • 基于内存计算(Memory Computing),数据可缓存至内存中,相比 Hadoop MapReduce 的磁盘读写,速度提升 10-100 倍。
  • 支持迭代计算(如机器学习、图计算),避免重复读写磁盘,进一步优化性能。

2.统一的工作负载处理框架

  • 集成多种计算引擎:
    • 批处理(Batch Processing):处理离线大规模数据集。
    • 流处理(Stream Processing):通过 Spark Streaming 实时处理数据流。
    • 交互式查询(Interactive Query):通过 Spark SQL 支持 SQL 与 DataFrame 操作。
    • 机器学习(ML):集成 MLlib 库,支持分类、聚类等算法。
    • 图计算(Graph Processing):通过 GraphX 处理图结构数据。

3.简洁易用的API

  • 支持多种编程语言:Scala、Java、Python、R、SQL。
  • 提供高层抽象数据结构(如 DataFrame/Dataset),简化复杂的数据处理逻辑。

4.高兼容性与扩展性

  • 可运行于 Hadoop、Mesos、Kubernetes 等集群管理器,也可独立部署。
  • 兼容 Hadoop 的 HDFS、Hive 等生态组件,方便与现有大数据架构集成。

三、Spark的核心组件

四、Spark的核心概念

  1. 分布式数据结构(RDD, Resilient Distributed Dataset)

    • Spark 的基础数据结构,代表一个不可变的分布式数据集,可分区存储在集群节点上。
    • 支持两种操作:
      • 转换(Transformations):如 map、filter、join,返回新的 RDD。
      • 动作(Actions):如 collect、count、save,触发计算并返回结果。
  2. DAG(有向无环图)调度

    • Spark 将任务分解为多个阶段(Stage),通过 DAG 调度器优化任务执行顺序,减少数据 shuffle(洗牌)开销。
  3. 内存管理与容错

    • 自动管理内存使用,支持数据缓存和 checkpoint(检查点)机制。
    • 通过 RDD 的血统(Lineage)信息实现容错,无需重新计算全量数据。

五、Spark的应用场景

  • 大数据分析:处理 PB 级数据,如日志分析、用户行为分析。
  • 实时流处理:实时处理社交网络消息、金融交易数据等。
  • 机器学习与 AI:构建推荐系统、欺诈检测模型等。
  • 数据科学与交互式查询:通过 Spark SQL 或 Jupyter 进行数据探索与可视化。

六、Spark与其他大数据框架的对比

七、如何开始使用Spark?

1.安装与部署

  • 下载 Spark 二进制包(官网),支持本地模式、集群模式(Standalone/YARN/Kubernetes)。

2.编程接口

示例(Python 版,计算 Pi 值):

3.生态工具

  • 结合 Jupyter Notebook、Zeppelin 进行交互式开发,或通过 Apache Livy 提交任务。

八、Spark的最新发展(截止至2025年)

  • Spark 4.0+:进一步优化性能,增强对 Kubernetes 的支持,提升流处理与批处理的统一能力。
  • AI 与大数据融合:强化与 TensorFlow、PyTorch 的集成,支持端到端的机器学习工作流。
  • 云原生优化:针对 AWS、Azure、GCP 等云平台进行深度优化,降低部署与运维成本。

通过以上介绍,可看出 Spark 凭借其高效、灵活和统一的特性,已成为大数据处理领域的核心框架之一,适用于从简单数据处理到复杂 AI 应用的多种场景。

Spark集群搭建

需提前开启服务

一、基本的配置【一台服务器上进行】

Spark HA Install补充配置

用处:HA 高可用集群,避免单点故障问题

在上面配置的基础上,进行以下补充配置:

Spark on Yarn Cluster补充配置

配置原因:Spark 是计算引擎,其框架更擅长运算,资源调度则不是强项,而 Yarn 是非常成熟的资源调度框架

在上面配置的基础上,进行以下补充配置:

二、拷贝spark配置至其他服务器

三、启动spark集群

输入 start-all.sh

四、WEB访问界面

WEB访问:http://master01:9090/

五、高可用Spark-HA的应用

开启master服务

高可用:开启master02中的master服务
    ssh root@master02 "start-master.sh"

关闭master服务

stop-master.sh

六、启动和关闭spark集群服务

启动spark集群

# 启动 zookeeper
zkServer.sh start
# 启动 hadoop hdfs
start-dfs.sh
# 启动 hadoop yarn
start-yarn.sh
# 启动spark
start-all.sh
 

关闭spark集群

# 关闭spark服务
    stop-all.sh    
# 关闭yarn服务
    stop-yarn.sh
# 关闭hdfs服务
    stop-dfs.sh
# 关闭zookeeper服务
    zkServer.sh stop 
 

七、任务提交

standalone【spark standalone】

yarn-cluster【yarn on yarn cluster】✔

前提:关闭spark服务 => 【stop-all.sh】

因为spark是计算引擎,其框架更擅长运算,资源调度则不是强项,而yarn是非常成熟的资源调度框架。

命令:

Spark 的出现推动了大数据从 “离线批处理” 向 “实时智能” 的转型,成为企业构建数据驱动决策系统的基石。其高效性、灵活性和生态兼容性,使其在全球 Top 500 企业中被广泛采用,支撑着从金融风控到智慧城市的各类关键应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值