欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spark基础

程序员文章站 2022-07-02 16:05:05
Spark基础 ① 快--基于内存的运算 ② 易用--支持java,python和Scala的API,shell交互式运用,还支持超过80种高级算法 ③ 通用--spark提供了统一的解决方案,spark用于批处理,交互式查询spark sql, 实时流处理spark streaming,机器学习s ......
Spark基础 Spark是一种快速.通用.可扩展的大数据分析引擎,是基于内存计算的大数据并行计算框架,提高在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性. 为什么要学习spark--中间结果输出 Spark特点

① 快--基于内存的运算

② 易用--支持java,python和Scala的API,shell交互式运用,还支持超过80种高级算法

③ 通用--spark提供了统一的解决方案,spark用于批处理,交互式查询spark sql,  实时流处理spark streaming,机器学习spark MLlib和图计算Graphx

④ 兼容性--方便与其他产品融合--不需要数据迁移就可以使用spark的强大处理功能,Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架.Spark还提供了在EC2上部署Standalone的Spark集群的工具。

Spark HA高可用部署

(1) Spark Standalone集群是Master-Slaves架构的集群,存在master单点故障问题

① 基于文件系统的单点回复---开发测试环境

② 基于zookeeper的standby Masters---生产模式

Spark角色介绍

(1) Master-Slaves模型,master是集群中含有master继承的节点,slave是集群中含有worker进程的节点

① Application:基于spark的应用程序,包含了driver程序和集群上的executor

② Driver Program:运行main函数并且创建SparkContext的程序

③ Cluter Manager:指的是在集群上获取资源的外部服务--有三种类型

1) Standalon:spark源生的资源管理,由master负责资源的分配

2) Apache Mesos:与MR兼容性良好的一种资源调度框架

3) Hadoop Yarn:主要是指Yarn中的ResourceManager

④ Worker Node:集群中任何可以运行Application代码的节点,在Standalone模式中指的是通过slave文件配置的Worker节点,在Spark on Yarn模式下就是NoteManager节点

⑤ Executor:是在一个worker node上为某应用启动的一个进程,该进程负责运行任务,并且负责将数据存在内存或 者磁盘上。每个应用都有各自独立的executor。

⑥ Task :被送到某个executor上的工作单元。

Scala代码

(1) sc.textFile("file:///root///words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

sc:Spark-Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可。

textFile:读取数据文件

flatMap:对文件中的每一行数据进行压平切分,这里按照空格分隔。

map:对出现的每一个单词记为1(word,1)

reduceByKey:对相同的单词出现的次数进行累加

collect:触发任务执行,收集结果数据。