MOOC大学课程Spark编程基础跟学笔记
大数据时代来临
存储设备
CPU运算能力
网络带宽
数据产生方式:企业运营数据->自媒体数据->感知数据
大数据概念
4V特性
volume:数据量大
variety:数据类型繁多
velocity: 数据处理速度快
value:价值密度低,单点价值密度高
4步研究范式
实验->理论->计算->数据
大数据关键技术
- 数据采集
网页爬虫
ETL工具
- 数据存储与管理
分布式文件系统
分布式数据库
Nosql数据库
- 数据处理与分析
mapreduce
spark
HADOOP【HDFS,MAPREDUCE】
- 数据隐私与安全
隐私数据保护体系
数据安全保护体系
大数据计算模式
- 批处理计算
无法实时响应
批处理框架:
spark(数据在内存中计算,s级响应)
mapreduce
- 流计算
针对流数据的实时计算(日志分析)
数据量小,响应速度快(ms级响应)
流处理框架:
twitter-> storm
s4
flume
dstream
- 图计算
图结构数据(社交网络、地理信息系统)
图计算框架:
google->pregel
hama
power graph
- 查询分析计算
查询分析框架:
google->dremel
hadoop->hive
代表性大数据技术
- hadoop
一整套大数据生态系统:
hdfs(存储)
yarn(调度)资源调度管家:不同计算框架之间底层资源利用调度,实现不同计算应用的负载混搭,共享底层存储
mapreduce(计算):map+reduce
hive(数据仓库,时间维度上的连续数据)
pig(pig latin语言,数据集成/转换)
mahout(算法库,实现常用数据挖掘方法接口)
hbase(分布式数据库)
zookeeper(分布式协作服务)
flume(日志采集)
sqoop(关系型数据库与hdfs/hive/hbase转换)
…
- spark
spark core(完成Rdd应用开发)
spark sql(关系型数据处理)
spark streaming(流计算)
mllib(机器学习算法库)
graphx(图计算)
hadoop vs spark
mapreduce缺点:
高度抽象只有map(),reduce(),表达能力有限;
磁盘IO开销大;
map任务-reduce任务:衔接等待开销;
对于迭代算法性能不好。
spark对mapreduce的继承改进:
操作函数多,+groupby(),…
高效利用内存,许多数据交换在内存中完成
DAG有向无环图调度机制,避免数据反复落地
spark 会取代hadoop吗?
spark是和mapreduce对等的计算框架
hdfs和hbase存储数据功能和spark共存共荣
编程语言首选scala交互式执行
java 先编译再执行,hadoop由java开发,可以直接调用hadoop接口
python 并发性能不好
- flink(与spark功能相近的计算框架)
流计算/批处理/hadoop交互
flink vs spark
flink 是真正满足实时流计算的框架
spark 是一个基于数据片集合的批处理框架,模拟流计算(实现不了ms级)
flink按行实时计算
- beam
google希望通过一个框架实现hadoop和计算框架
开源cloud dataflow的编程接口,命名为beam