架构师训练营 -week13- 总结

本周重点学习了以下几个方面的内容:
Spark生态体系介绍
流处理技术介绍(Flink、Storm、Sparking Stream)
大数据体系内的常用算法(贝叶斯、神经网络、网页排名算法等)
平时的工作中没有涉及到大数据相关的,根据老师的讲解,简答的做个提纲,列入到下一阶段提升计划里。学好大数据应该具备几个方面的基础知识:1、相关基础的数学知识;2、熟练使用一门适用于大数据或者AI相关的开发语言,例如Python。目前火热的领域,物联网、新基建、边缘计算等等都跟大数据相关,所以也是属于必须掌握的知识领域里。
Spark
Spark生态体系
Spark SQL
Spark Streaming
MLlib
GraphX

Spark特点(Spark为什么更快)
DAG切分的多阶段计算过程更快速
使用内存存储中间计算结果更高效(Hadoop其实是把map和reduce的结果写到HDFS的)
RDD(弹性分布式数据集)编程模型更简单(RDD类似java8的stream)。MapReduce分为map和reduce两个阶段,而Spark针对数据进行编程,把大规模数据集抽象成一个RDD对象,然后在这个RDD对象上进行各种计算,每一个计算会得到一个新的RDD对象。所以MapReduce是一个面向过程的编程,而RDD是一个面向对象的编程。

Spark的计算阶段
Spark可以根据应用的复杂程度,分割成更多的计算阶段(stage),这些计算阶段组成一个有向无环图DAG,Spark任务调度器可以根据DAG的依赖关系执行计算阶段。

Spark的执行过程
Spark支持standalone、Yarn、Mesos、Kubernetes等多种部署方案,集中部署方案原理差不多,只是不同组件的角色命名不一样,但是核心功能和运行流程都差不多。

Spark的作业管理
Spark的RDD函数有两种,一种是转换函数,调用以后得到的还是一个RDD;另一种是action函数,调用以后不再返回RDD
流计算
Storm实时的Hadoop
实时计算系统
低延迟
高性能
分布式
可伸缩
高可用



Storm应用场景
Storm被广泛用来进行实时日志处理,出现在实时统计,实时风控,实时推荐等场景中。
Spark Streaming
Spark版本的Storm

Flink
下一代Spark


大数据算法与机器学习
Google的网页排名算法PageRank(具体说明在本周作业里描述了)
KNN算法
用来解决分类的问题;用距离来衡量样本之间的相似度
算法过程:
计算未知点到所有已知类别点的距离
按距离排序(升序)
选取其中前k个与未知点离得最近的点
统计k个点中各个类别的个数
上述k个点里类别出现频率最高的作为未知点的类别
贝叶斯分类算法
K-means聚类算法
算法过程:
随机选取k个点,作为聚类中心;
计算每个点分别到k个聚类中心的聚类,然后将该点分到最近的聚类中心,这样就行成了k个簇;
再重新计算每个簇的质心(均值);
重复以上2~4步,直到质心的位置不再发生变化或者达到设定的迭代次数
推荐引擎算法
机器学习系统架构

样本:包含:输入、结果
模型:映射 样本输入与样本输出的函数
算法:计算损失函数的最小值的过程
评论