Spark综述

Spark综述

Apache Spark是一个快速、通用的集群计算系统。

它提供了高层次的Java、Scala、Python与R语言API,以及一个支持通用图形计算的优化引擎。

它还提供了丰富的高级工具集,eg:用于处理结构化数据的Spark SQL、用于机器学习的MLlib、用于图形处理的GrapX以及Spark Streaming。

 


翻译源:http://spark.apache.org/docs/latest/

### 如何搭建 Spark 开发环境 要成功搭建 Spark 的开发环境,可以按照以下方法操作。首先,在本地计算机上安装 Java 和 Scala 是必要的,因为 Spark 使用 Scala 编写,并且需要 JVM 来运行[^2]。其次,下载适合版本的 Spark 并解压到指定目录。可以通过设置 `SPARK_HOME` 环境变量来简化命令调用过程。 对于分布式部署场景,可以选择 Amazon EC2 或其他云服务提供商进行配置[^2]。如果希望在 YARN 上运行 Spark,则需额外调整 Hadoop 配置文件以支持集群管理器的功能[^1]。 以下是基于 Python 的简单测试脚本用于验证安装是否正确完成: ```python from pyspark import SparkConf, SparkContext conf = SparkConf().setAppName("test").setMaster("local[*]") sc = SparkContext(conf=conf) data = sc.parallelize([1, 2, 3, 4]) result = data.map(lambda x: x * x).collect() print(result) ``` 此代码片段展示了如何创建一个基本的 Spark Context 实例并执行简单的 Map 操作[^3]。 ### Spark 核心概念详解 #### 1. **ClusterManager** 这是负责分配资源给各个节点的核心组件之一。常见的 ClusterManagers 包括 Standalone、YARN 及 Mesos 等。 #### 2. **Worker Node** 指实际执行任务的工作节点,它们由 Cluster Manager 进行管理和调度。 #### 3. **Driver Program** 驱动程序定义应用程序逻辑并通过 Spark 提交作业至集群中运行。它包含了 Application Master 的角色功能[^1]。 #### 4. **Executor Process** 每个 Worker 节点上的 Executor 是独立进程,专门用来加载数据和运行 Task。 #### 5. **Job & Stage** 当 Action 方法被触发时会生成 Job,而 Stages 则代表了物理计划阶段划分的结果。通常来说,窄依赖关系形成 Shuffle-Free Pipeline 即 Single Stage;反之则会产生 Multiple Stages[^1]。 #### 6. **RDD (Resilient Distributed Dataset)** 弹性分布数据集是 Spark 基础抽象单位,提供了 Fault-Tolerance 特性和 Lazy Evaluation 性能优化策略[^3]。 #### 7. **SparkSession** 作为统一入口点替代旧版 API(如 SQLContext),使得开发者能够更方便地访问 DataFrame/Dataset APIs[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值