初识Spark
Spark基础及架构
Spark是类Hadoop MapReduce的通用并行框架
- Job中间输出结果可以保存在内存,不再需要读写HDFS
- 比MapReduce平均快10倍以上
Spark优势
- 速度快
1. 基于内存数据处理,比MR快100个数量级以上(逻辑回归算法测试
2. 基于硬盘数据处理,比MR快10个数量级以上 - 易用性
1. 支持Java、Scala、Python、R语言
2. 交互式shell方便开发测试 - 通用性
1. 一栈式解决方案:批处理、交互式查询、实时流处理、图计算及机器学习 - 随处运行
1. YARN、Mesos、EC2、Kubernetes、Standalone、Local
Spark技术栈
- Spark Core:核心组件,分布式计算引擎
- Spark SQL:高性能的基于Hadoop的SQL解决方案
- Spark Streaming:可以实现高吞吐量、具备容错机制的准实时流处理系统
- Spark GraphX:分布式图处理框架
- Spark MLlib:构建在Spark上的分布式机器学习库
Spark运行架构
- 在驱动程序中,通过SparkContext主导应用的执行
- SparkContext可以连接不同类型的Cluster Manager(Standalone、YARN、Mesos),连接后,获得集群节点上的Executor
- 一个Worker节点默认一个Executor,可通过SPARK_WORKER_INSTANCES调整
- 每个应用获取自己的Executor
- 每个Task处理一个RDD分区
Spark架构核心组件
Spark下载安装
下载地址
- Spark2.2.0版本下载地址:点击这里
安装布署
- 这里可以参考我的文档(流程相较简单,适合学习):Spark安装配置(单机版)
Spark学习的第一个程序
- 实现WordCount:点击这里
Spark RDD (必学)
- Spark RDD算子大全(Java、Scala双版本):点击这里