写点什么

架构师训练营第 1 期 week13 总结

用户头像
张建亮
关注
发布于: 2020 年 12 月 17 日

1、spark

1.1 spark为什么更快

DAG切分的多阶段计算过程更快速,MapReduce只有map和reduce两个阶段,当一个过程处理不完就必须开始一个新的job,而spark可以切分更多的阶段,进行连续的计算,中间的过程进行的HDFS的操作就可以省略了。

spark优先尽量使用内存进行存储,速度比磁盘更快。

spark的rdd模型的编程更简单。

1.2 RDD

RDD 是 Spark 的核心概念,是弹性分布式数据集(Resilient Distributed Datasets)的 缩写。RDD 既是 Spark 面向开发者的编程模型,又是 Spark 自身架构的核心元素。 作为 Spark 编程模型的 RDD。 MapReduce 针对输入数据,将计算过程分为两个阶段,一个 Map 阶段,一个 Reduce 阶段,可以理解成是面向过程的大数据计算。我们在用 MapReduce 编程的时候,思考的是,如何将计算逻辑用 Map 和 Reduce 两个阶段实现, map 和 reduce 函数的输入和输出是什么,MapReduce是面向过程的。

而 Spark 则直接针对数据进行编程,将大规模数据集合抽象成一个 RDD 对象,然后在 这个 RDD 上进行各种计算处理,得到一个新的 RDD,继续计算处理,直到得到最后的 结果数据。所以 Spark 可以理解成是面向对象的大数据计算。我们在进行 Spark 编程的时候,思考的是一个 RDD 对象需要经过什么样的操作,转换成另一个 RDD 对象,思考的重心和落脚点都在 RDD 上。

1.3 DAG

spark调度执行的核心师DAG,有了 DAG,整个应用就被切分成哪些阶段,每个阶段的依赖关系也就清楚了。之后再根据每个阶段要处理的数据量生成相应的任务集合,每个任务都分配一个任务进程去处理,Spark 就实现了大数据的分布式计算。

1.4 spark中RDD函数有两种一种是转换函数,调用后还是生成一个RDD,RDD的计算逻辑主要是通过转换函数完成。另一种是action函数,调用完后不再返回RDD。

1.5 spark执行过程

spark 支持 Standalone、Yarn、Mesos、Kubernetes 等多种部署方案,几种部署方案原理也都一样,只是不同组件角色命名不同,但是核心功能和运行流程都差不多。

2.KNN算法

对于一个需要分类的数据,将其和已经分类标注好的集合进行比较,得到距离最近的K个样本,K个样本最多归属的类别,则为数据所属的类别。

其中数据的距离算法,常用的有欧式距离计算公式(每个维度的差的平方求和再开平方,最好是每个维度都让处于相同的范围内)、余弦相似度近似公式。

提取文本的特征值TF-IDF算法:

TF是词频,表示某个单词在文档中出现的频率;

IDF是逆文档频率,表示这个单词在所有文档中的稀缺程度,IDF=log(所有文档数/出现该词的文档数);

TF-IDF=TF*IDF;

3、贝叶斯分类算法

P(B|A) = (p(A|B)*P(B))/P(A);

某个物品是某个类别的概率等于该类别下是该物品的概率*该物品出现概率/该类别在所有类别中出现的概率;

4、K-means 聚类算法

a、在已有的数据之外,随机K个种子点;

b、计算每个数据离这些点的距离,离哪个种子点近,则跟哪个种子点是属于一类;

c、分好类以后,取每个类中的中心点,再次计算每个数据离这个最新点的距离,按照b重新分类;

d、重复几次后,每个组的中心点不再变化,则离中心点最近的点即为对应的分类;



用户头像

张建亮

关注

还未添加个人签名 2020.07.29 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 1 期 week13 总结