Spark基础

Spark基础

  1. Spark是一种快速.通用.可扩展的大数据分析引擎,是基于内存计算的大数据并行计算框架,提高在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性.
  2. 为什么要学习spark--中间结果输出
  3. Spark特点

① --基于内存的运算

② 易用--支持java,pythonScalaAPI,shell交互式运用,还支持超过80种高级算法

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

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

  1. Spark HA高可用部署

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

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

② 基于zookeeperstandby Masters---生产模式

  1. 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上的工作单元。

  1. 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:触发任务执行,收集结果数据。

posted @ 2018-01-09 00:24  龚小阳  阅读(243)  评论(0)    收藏  举报
互联网技术交流群