spark

1.spark 开源的分布式cluster(集群)运算框架

2.spark相对于Hadoop的优势

  • 数据处理逻辑的代码非常简短
  • 提供很多转换和动作,而hadoop只提供Map和Reduce,表达力欠缺
  • 一个job可以包含多个转换操作,在调度时可以生成多个stage,多个map操作的RDD分区不变,可以放在同一个task中进行,而hadoop一个job只有map和reduce,复杂计算需要大量job完成
  • 逻辑更清晰,可以提供处理逻辑整体视图,而hadoop没有整体逻辑
  • spark运算中间结果放在内存中,内存放不下会写入本地磁盘,hadoop中间结果放在hdfs中
  • 可以处理流数据和交互式数据,Hadoop时延高,只适用批处理
  • 通过内存中缓存数据,迭代式计算能力强

3.spark生态

  •   spark core API:支持python,java,scala,sql等语言,批处理计算
  •   spark SQL: 支持用sql查询,交互式计算
  •   streaming: 数据流式处理,相对批量处理速度更快
  •   MLlib(machine learning): 较少量数据反复迭代运算,机器学习
  •   graphx: 基于图运算引擎,适用于图运算

 4.spark核心组成部分

  •  driver: 写的程序本身
  •  cluster manager: 分配调度任务
  •  worker node: 执行计算任务
  •  executor: worker node中执行任务的角色, 相当与进程, 一个worker node 中可以有多个executor

5.job

 一个application由多个job组成,与hadoop不同每个action都会产生一个job

6.stage

一个job分为多个stage,stage是按照数据计算的边界划分

 7.task

一个stage可以有多个task,一个task是一个真正的计算任务,是计算任务的最小单位

8.spark数据来源

  • 本地文件csv,json,txt
  • hdfs
  • hbase
  • MongoDB
  • 传统数据库等
  •  云端数据S3

9.RDD-spark核心数据结构

RDD横跨整个集群,系统自动分隔,partition可以并行计算

RDD是只读的且不可改变

RDD只能从数据源读进来或者从其他RDD转换过来

RDD action计算方法: collect,count,countByValue,reduce,top

重要的RDD可以存档,可以配置保存的位置

10.大数据最耗时其实是IO操作,spark数据本地化,尽量减少数据移动,提高了处理速度,

 所有开发时尽量考虑数据的位置,尽量减少数据的移动

11.Lambda架构

既有批处理又有流式处理

12.apark stream---mini batch

比流式处理容易迁移,提供秒级实时计算,对延时要求高的(毫秒级)计算不太适合

原文地址:https://www.cnblogs.com/fanshudada/p/10958714.html