当前位置: 移动技术网 > IT编程>数据库>其他数据库 > Spark基础

Spark基础

2018年01月09日  | 移动技术网IT编程  | 我要评论
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:触发任务执行,收集结果数据。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网