数据分析方法与技术
特点
Storm(流处理)
注重高吞吐量,中间数据存储在磁盘; 注重实时响应,运算及中间数据都使 单次运行;数据粒度在块级别,任务 用内存;持续运行;数据粒度在记录 完成才能获得结果 级别,能快速得到结果
TB PB EB ZB
这些由我们创造的信息背后产生的这些数据早已经远远超越了目前人力所能处理 的范畴 大数据时代正在来临…
大数据的4V特征
体量Volume
非结构化数据的超大规模和增长 • 占总数据量的80~90% • 比结构化数据增长快10倍到50倍 • 是传统数据仓库的10倍到50倍 大数据的异构和多样性 • 很多不同形式(文本、图像、视频、机器数据) • 无模式或者模式不明显 • 不连贯的语法或句义
海量 数据存储
元 数 据 管 理 数 据 质 量 监 控
报表展示
数据应用 数据集市
数据 处理
数 据 应 用
HIVE
分布式 文件系统
Zoo Keeper
E T L
汇总加工数据 明细数据
数 据 仓 库
数据 采集 源
数析时代背景
第二部分 数据分析平台技术
HDFS+MapReduce+Hive Storm+Spark
统计和分析:A/B test; top N排行榜;地 域占比;文本情感分析 数据挖掘:关联规则分析;分类;聚类 模型预测:预测模型;机器学习;建模仿 真
非结构化数据
半结构化数据
大数据技术:
数据采集:ETL工具 数据存取:关系数据库;NoSQL;SQL 基础架构支持:云存储;分布式文件系统 计算结果展现:云计算;标签云;关系图
储,典型块大小为64MB或128MB;
一个block被复制存放于多个 datanode。
11
HDFS 文件写入流程
1. 客户端调用create()来创建文件;
2. FileSystem用RPC调用NameNode,
NameNode创建一个新的文件。 FileSystem返回OutputStream,用于客 户端写数据; 3. 客户端开始写入数据, OutputStreamer将数据分成块,写入 data queue。Data queue由Data 5. OutputStreamer为发出去的数据块保存了 ack queue,等待pipeline中的DataNode告 知数据已经写入成功。 6. 当客户端结束写入数据,则调用stream的 close函数。 OutputStreamer将所有的数据 块写入pipeline中的DataNode,并等待返回 成功。 7. 最后通知NameNode写入完毕。
HIVE是一个在Hadoop上构建数据仓库的工具,它支持通过类SQL的HQL语言操作结 构化的数据,实现了基本的SQL功能,可扩充UDF/UDAF
对SQL请求进行语法解析,语义分析生成一 个由HIVE算子组成的DAG(无环有向图) 即逻辑执行计划; 优化器有采用一系列的优化规则对原始的逻 辑执行计划进行优化; 算子被划分到一个个Map或者Reduce中, 形成物理执行计划。 按照MapReduce Job的依赖关系依次将这
1. 从src1表中选出所有的记录; 2. 按照k进行分组; 3. 对每个分组计算count(v); 4. 选出k和count(v)作为子查询返回结果; 5. 从src2中选出所有记录;
6. 对t1和t2两表进行join操作,条件为t1.k=t2.k;
7. 对join结果选出t1.k, t, t2.v作为返回结果。
Variety 多样的数据类型
Volume 海量的数据规模
发现数据价值
数据处理相关技术
海量数据存储:
结构化数据:
• • • • • 海量数据的查询、统计、更新等操作效率低 图片、视频、word、pdf、ppt等文件存储 不利于检索、查询和存储 转换为结构化存储 按照非结构化存储
分析技术:
数据分析技术与方法
20150108
目录
第一部分 数据分析时代背景
第二部分
数据分析平台技术
第三部分
数据仓库建模方法
第四部分
数据分析与数据挖掘
2
数据分析时代的背景
数据量增加
数据结构日趋复杂
大量新数据源的出现则导致了非结构化、 半结构化数据爆发式的增长
根据IDC 监测,人类产生的数据量正在呈指数级 增长,大约每两年翻一番,这个速度在2020 年之 前会继续保持下去。这意味着人类在最近两年产生 的数据量相当于之前产生的全部数据量。
• 大量的不相关信息 • 对未来趋势与模式的可预测分析 • 深度复杂分析(机器学习、人工智能Vs传统商务 智能(咨询、报告等) 实时分析而非批量式分析 • 数据输入、处理与丢弃 • 立竿见影而非事后见效
多样性Variety
价值密度Value
速度Velocity
“大量化(Volume)、多样化(Variety)、快速化(Velocity)、价值密度低(Value)”
要解决的问题
Streams Real time Near time Batch
Velocity 快速的数据流转
Value
Structured Unstructured Semi-structured All the above
TB
PB EB
大数据技术被设计用于在成 本可承受的条件下,通过非 常快速(velocity)地采集、 发现和分析,从大量(volu mes)、多类别(variety) 的数据中提取数据价值(va lue),将是IT 领域新一代 的技术与架构。
第三部分 第四部分
数据仓库建模方法 数据分析与数据挖掘
8
不同分析场景解决方案
根据响应时长可以将应用需求进行如下划分:
• 实时应用场景(0~5s):
– Storm、S4、Cloudera Impala,Apache Drill等;
• 交互式场景(5s~1m):
– 最好支持SQL,: Shark 、Cloudera Impala、Apache Drill等;
• 非交互式场景(1m~1h):
– MapReduce、Hive、Pig、Stinger等;
• 批处理场景(1h+)
– 运行时间较长,处理数据量较大,对容错性和扩展性要求较高
– MapReduce、Hive、Pig、Stinger等。
9
Hadoop 生态系统
Data accessed through multiple entry points Oozie 工作流引擎 External Data Sources Hive Metastore (HCatalog) Users Mahout
序 —— Supervisor,用于收听
工作指派并基于要求运行工作进程。 每个工作节点都是topology中一 个子集的实现。
18
Storm——Topology
Spout:在一个
topology中产生源数据流 的组件,从来源处读取数
据并放入topology。
Bolt:在一个topology
些Job提交给Hadoop来执行。
在HIVE做权限认证和SQL解析时需要和 HIVE的元数据集群交互来获取表的信息和存 储格式等。
15
HiveQL工作原理
Select t1.k, t, t2.v from (select k, count(v) cnt from src1 where x>0 gr oup by k) t1 join src2 t2 on (t1.k=t2.k);
Streamer读取,并通知NameNode分配
DataNode,分配的DataNode放在一个 pipeline里; 4. Data Streamer将数据块写入pipeline中
的DataNode1;DataNode1将数据块
发送给DataNode2;DataNode2将数 据发送给DataNode3;
Groupby GroupbyOp Join JoinOp
分析函数 Union
AnalysisOp UnionOp LimitOp FileSinkOp
Limit
把结果写到文件系统中
16
目录
第一部分
数据分析时代背景
第二部分 数据分析平台技术
HDFS+MapReduce+Hive Storm+Spark
SQL操作 表扫描 Select Where 备注 什么也没做,把数据(文件, TableScanOp 表)传给子节点 选择表的某些字段 SelectOp 按照条件过滤 FilterOp ReduceSinkOp 为reduce阶段设置key和value 对相同key值的行进行缓存和计 算 对来自左表和右表的相同key值 的行进行缓存并连接运算 先按照partition by的列进行分 组,然后按照order by的列进 行排序,最后按照窗口形状进 行计算 Operator
第三部分
第四部分
数据仓库建模方法
数据分析与数据挖掘
17
流式数据处理框架——Storm
Storm集群主要由一个主节点
(master node)和一群工作 节点(worker nodes)组成,通过 Zookeeper集群进行协调;
主节点通常运行一个后台程序 — — Nimbus,用于响应分布在集 群中的节点,分配任务和监测故障。 工作节点同样会运行一个后台程 master
12
HDFS 文件读取流程
1. 客户端(client)用FileSystem的 open()函数打开文件; 2. FileSystem用RPC调用NameNode, 得到文件的数据块信息;对于每一个 数据块,NameNode返回保存数据 块的DataNode的地址,FileSystem