数据应用总结二
大数据计算引擎 Spark
Spark VS Hadoop
Spark runtime time(s) :0.9
Hadoop runtime time(s) :110
Spark 特点:
l DAG 切分的多阶段计算过程更快速。
l 使用内存存储中间计算结果更高效。
l RDD(弹性分布式数据集)的编程模型更简单。
Spark wordCount 编程示例
1. 根据 HDFS 路径生成一个输入数据 RDD。
2. 在输入数据 RDD 上执行 3 个操作,得到一个新的 RDD。
将输入的数据每一行进行分词。
将每个单词进行转换,word -> (word,1)结构。
将相同的 key 进行统计,对 value 求和。
3. 将 RDD 保存到 HDFS。
RDD 编程模型
RDD 是 spark 核心概念,是 spark 面向开发者的编程模型,又是 spark 自身架构的核心元素。
大数据计算就是在大规模数据集上进行一系列数据计算处理。MapReduce 针对输入数据,将计算数据分为两个阶段,一个是 map 阶段,一个是 reduce 阶段,可以理解为面向过程的大数据计算。MapReduce 编程是面向过程,需思考如何将计算逻辑用 map 和 reduce 两个阶段实现,map 和 reduce 的输入和输出是什么。
Spark 是直接针对数据编程,将大规模数据集抽象成一个 RDD 对象,然后在这个 RDD 上进行各种计算处理,得到一个新的 RDD,继续计算处理直到得到最后结果数据。所以 RDD 编程理解为是面向对象的大数据计算。
Spark 作业管理
Spark 中 RDD 函数分两种:
1.转换函数,调用后还是一个 RDD 函数。
2.action 函数:比如 count()函数,返回 RDD 中数据的元素个数。
Spark 执行过程
Spark 支持 standalone、yarn、Mesos、kubernetes 等多种部署方案,几种部署方案原理一样,只是不同组件角色命名不同,但核心功能和运行流程相似。
Spark 生态体系
流处理计算:Flink、Storm、Spark Streaming
Storm 实时的 Hadoop
实时计算系统
l 低延迟
l 高性能
l 分布式
l 可伸缩
l 高可用
Storm 基本概念
Nimbus:负责资源分配和任务调度。
Supervisor:负责接受 nimbus 分配的任务,启动和管理属于 supervisor 的 worker 进程。
Worker:运行具体处理组件逻辑的进程。
Task:Worker 中每一个 Spout/Bolt 的线程称为一个 Task。
Topology:storm 中运行的一个实时的应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。
Spout:在一个 Topology 产生源数据流的组件,spout 从外部数据源读取数据,然后转换为 Topology 内部的源数据。Spout 是一个主动的角色,其接口有一个 nextTuple()函数,Storm 框架会不停调用此函数,用户只要在其中生成源数据即可。
Bolt:在一个 Topology 接收数据然后执行处理的组件,Bolt 可执行过滤、函数操作、合并、写库等任何操作,Bolt 是一个被动的角色,其接口中有一个 execute(Tuple input)函数,在接收到消息后调用此函数,用户可以在其中执行自己想要的操作。
Tuple:一次消息传递的基本单元。本应该是一个 key-value 的 map 结构,但由于各组件间传递的 Tuple 的字段名称已经定义好,所以 Tuple 中只要按序填入各个 value 就行,组成一个 value list。
Stream:源源不断传递的 tuple 就组成了 stream。
Spark streaming
大数据基准测试工具 HiBench
Hibench 主页
https://github.com/intel-hadoop/hibench
大数据分析与可视化
网站运营常用指标
新增用户数
用户留存率
用户流失率
活跃用户数
PV
GMV(成交总金额)
转换率
数据可视化图表与数据监控
折线图
散点图
热力图
漏斗图
分类和聚类算法
KNN 分类算法
KNN 算法,又叫 K 近邻(K Nearest Neighbour)
对于需要分类的数据,将其已和一组分类标注好的样本集合进行比较,得出距离最近的 K 个样本,K 个样本最多归属的类别,就是这个需要分类数据的类别。
数据的距离计算
欧式距离计算
余弦相似度计算
提取文本特征值 TF-IDF 算法
TF 是词频(Term Frequency)表示某个单词在文档中出现的频率。
IDF 是逆文档频率(Inverse Document Frequency),表示这个词在所有文档的稀缺程度。
贝叶斯分类算法
K-means 聚类算法
网页排名算法 PageRank
PageRank 让链接来投票
PageRank 通过网络的超链接来确定一个页面的等级。
一个页面的得票数由所有链向它页面的重要性决定。
推荐引擎算法
基于人口统计的推荐
基于商品属性的推荐
基于商品的协同过滤推荐
机器学习与神经网络算法
机器学习系统架构
样本
样本就是训练数据,包括输入和结果两部分。
模型
模型就是映射样本输入和样本结果的函数,可能是一个条件概率分布,也可能是一个决策函数。具体的机器学习系统所有可能的函数构成了模型的假设空间,数学表示是:
算法
算法就是从模型的假设空间中寻找一个最优的函数,使得样本空间的输入 X 经过该函数的映射得到 f(X) 和真实 Y 值之间的距离最小。这个最优函数没法直接得到,而是通过数值计算的方法不断迭代求解。
神经网络
l 神经网络在手写数字识别中的应用
l 神经网络与围棋 AI
版权声明: 本文为 InfoQ 作者【Mars】的原创文章。
原文链接:【http://xie.infoq.cn/article/9e115a70c246f327c2a3b37b1】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论