架构师训练营第 13 周学习总结
大数据计算引擎 Spark
* Spark 特点
* DAG 切分的多阶段计算过程更快速
多级 JOIN 需要多个 MapReduce 作业串行,Spark 会把所有 JOIN 操作分为不同阶段,中间不需要写入 HDFS
* 使用内存存储中间计算结果更高效
Map 输出写出到硬盘,然后通过硬盘 shuffle 到 Reduce,在 Reduce 里面 merge 排序,相同的 key 合并后再交给 reduce 去处理
* RDD 的编程模型更简单
所有算子在相同节点内进行,reduceByKey 先在本地聚合,然后相同 key shuffle 到同一个节点
* RDD 弹性分布式数据集
* 编程模型
* MapReduce 面向过程进行大数据计算
* Spark 面向对象(RDD)的大数据计算
* RDD transform: map, filter, union, reduceByKey, join, groupByKey
* RDD action: saveAsTextFile, count
* 数据分片
* Spark 数据分片、任务调度都是以 RDD 为单位
* transform 分两种:窄依赖(不产生新分片)、宽依赖(产生新分片)
* 计算阶段
* 计算阶段划分的依据是 shuffle,不是转换函数的类型
* 一次任务调度就是一个计算阶段,每个数据分片交给一个计算进程来完成
流处理计算
* Storm 实时的 Hadoop
* Nimbus:负责资源分配和任务调度
* Supervisor:负责接受 Nimbus 分配的任务,启动和停止属于自己管理的 Worker 进程
* Spout:产生源数据流的组件
* Bolt:接受数据然后执行处理的组件
* Spark Streaming
* 把一个 time window 的流数据作为数据分片交给 Spark 引擎处理
大数据分析与可视化
* 互联网运营常用数据指标
* 新增用户数
* 用户留存率
* 活跃用户数
* Page View
* 成交总金额 GMV
* 转化率
* 数据可视化图表
* 折线图
* 散点图
* 热力图
* 漏斗图
网页排名算法 PageRank
* 从 A 页面到 B 页面的链接意味着 A 页面给 B 页面投票
* 页面 A 的 PR 值等于所有链接到 A 的页面 之和(PR 值 /页面链接数)
KNN 分类算法
* 计算待分类的数据和所有样本点计算距离
* 取距离最近的 K 个样本,K 个样本最多归属的类别就是预测分类
提取文本特征值的 TF-IDF 算法
* Term Frequency 词频 = 某个词在文档出现的次数 / 文档总次数
* Inverse Document Frequency = log (所有文档数 / 出现该词的文档数), 值越大表示该词越稀缺
TF IDF 乘积越大,表示该词在本文档出现次数多,但在其他文档出现次数少,也就越能代表该文档
K-means 聚类算法
* 随机在图中取 K 个种子点
* 求图中所有点到这 K 个种子点的距离,归入最近种子点所在的类
* 在每个类别,重新计算中心点,作为下一轮的种子点,重新计算,直到分类不再变化
推荐引擎算法
* 基于人口统计的推荐
* 基于商品属性的推荐
* 基于用户的协同过滤推荐
* 基于商品的协同过滤推荐
机器学习与神经网络算法
* 给定样本,在参数空间中寻找使损失函数最小的参数
* 为避免过拟合,可以在损失函数中加入增加模型复杂度
* 求解损失函数最小值在数学上需要计算一阶导数,实际训练过程会使用梯度下降等数值计算方法
评论