架构师 第十三周 总结
Spark
Spark 生态体系
Spark SQL :使用写SQL的方式进行数据计算
Spark Graphx: 图计算和并行图计算
Spark Mlib:可扩展的Spark机器学习库
Spark Streaming:流式计算框架
Spark VS Hadoop
为什么比Hadoop快
DAG切分的多阶段计算过程更快速
使用内存存储中间计算结果更高效
RDD的编程模型更简单
RDD
编程模型:既是面向开发者的编程模型,又是Spark Core的核心元素;
数据分片:数据分片、任务调度都是以RDD为单位进行;分为宽依赖和窄依赖;
Spark 计算阶段
根据应用的复杂度,分割成更多的计算阶段(stage),分割的计算阶段组成一个有向无环图DAG,Spark任务调度器根据DAG的依赖关系执行计算阶段
Spark 作业管理
RDD有两种函数:转换函数、action函数;
转换函数:调用之后还是得到下一个RDD,RDD计算主要通过转换函数完成。
action函数:调用后不再返回RDD;
Spark 执行过程
1 Spark应用程序启动Driver进程,调用SparkContext 初始化执行配置和输入数据。SparkContext启动DGAScheduler构造执行DAG的有向无环图,切分成最小单位的计算任务。
2 Driver向Cluster Manager请求计算资源,用于DAG的分布式计算。Cluster Manager收到请求后,将Driver的主机地址通知给集群所有计算节点Worker.
3 Worker 向Driver主机通信并注册,领取任务。Driver 根据DAG图向Worker分配任务。
4 Worker 启动Executor 执行任务,从Driver下载执行代码,通过反射加载开始执行;
流计算
Storm 实时的Hadoop
实时计算系统
低延迟
高性能
分布式
可伸缩
高可用
基本概念
Nimbus: 负责资源分配和任务调度
Supervisor: 接收Nimbus分配的任务,启动停止自己管理的Worker进程
Worker: 运行具体组件逻辑的进程
Task: Worker中每一个Spout/Bolt的线程为一个Task;
应用场景
实时日志处理、实时统计、实时风控、实时推荐等
下一代 Spark
Flink
大数据可视化
互联网运营常用数据指标
新增用户数
用户留存率
活跃用户数
PV
GMV
转化率
数据可视化图表与数据监控
折线图
散点图
热力图
漏斗图
大数据算法与机器学习
网页排名算法 PageRank
KNN 分类算法
又称K近邻算法
将一个需要分类的数据和一组已经分类标注好的样本集合进行比较,得到距离最近的K个样本,K个样本最多归属的类别,就是这个需要分类数据的类别。
贝叶斯分类算法
K-MEANS 聚类算法
推荐引擎算法
评论