数据应用总结(一)
大数据原理概述
大数据技术发展史
分布式文件系统 HDFS
常用 RAID 技术
HDFS 系统架构
数据存储
HDFS 设计目标
HDFS 以流式数据访问模式存储超大文件,运行于商用硬件集群上。
超大文件
流式数据访问
一次写入多次读取
不适合 HDFS 场景
l 低延迟的数据访问
l 大量小文件
超过 namenode 处理能力
l 多用户随机写入修改
HDFS 优势
为了做到可靠性创建多份数据块的复制,并将它们放置在服务器群的计算节点中,MapReduce 就可以在它们所在节点上处理这些数据。
l 任何一节点失效,不影响 HDFS 服务。
l HDFS 自动完成副本的复制。
文件
文件切分成块(默认大小 64M),以块为单位,每个块有多个副本存储在不同机器上,副本数可在文本生成时指定(默认 3)。
NameNode 是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表以及块所在的 DataNode 等。
DataNode 在本地文件系统存储文件块数据,以及块数据的校验,可以创建、删除、移动和重命名文件,当文件创建、写入和关闭之后不能修改文件内容。
HDFS 写文件过程
HDFS 读文件过程
DataNode 磁盘挂了如何处理
l DataNode 正常服务。
l 坏掉的磁盘上的数据及时通知 NameNode。
DataNode 所在机器宕机如何处理
Q:NameNode 如何知道 DataNode 挂掉?
A:DataNode 每 3 秒向 NameNode 发送心跳,如果 10 分钟 DataNode 没有向 NameNode 发送心跳,则 NameNode 认为 DataNode 已经死亡,NameNode 将取出 DataNode 上的 block,复制到其他机器上。
NameNode 挂掉如何处理
持久化元数据
l 操作日志
Ø 记录文件创建,删除,修改文件属性等操作
l Fsimage
Ø 包含完整命名空间。
Ø File->block 的映射关系。
Ø 文件属性(ACL,quota,修改时间等)。
主主复制
Client 宕机如何处理
Q:Client 挂掉有什么影响?
A:一致性问题。
HDFS 一致性模型
文件创建后,不保证在 NameNode 立即可见,即使文件刷新并存储,文件长度依然可能为 0。
当写入数据超过一个块后,新的 reader 可以看见第一个块,reader 不能看见当前正在写入的块。
HDFS 提供 sync()强制缓存和数据节点同步,sync 调用成功后,当前写入数据对所有 reader 可见且一致。
调用 sync()会有额外开销。
副本摆放策略
HDFS 配置文件,靠交换机进行连接,如果网络中断,在同一服务器上数据是可以被访问到,但另一个机架上应用程序无法访问另一机架上数据。如果备份文件都放在同一机架上,当网络中断,另一个机架程序是无法访问的,所以副本是跨机架备份。
大数据计算框架 MapReduce - 编程模型
MapReduce 大规模数据处理
l 处理海量数据。
l 成百上千 CPU 实现并行处理。
简单的实现以上目的
l 移动计算比移动数据更划算
分而治之
MapReduce
它们由 map 和 reduce 两部分程序组成,然后利用框架在计算机集群上根据需求运行多个程序实例处理各个子任务,然后在对结果进行合并。
大数据计算框架 MapReduce - 架构
适合 MapReduce 的计算类型
l TopK
l K-means
l Bayes
l SQL
不适合 MapReduce 计算类型
l 圆周率
Partitioner
MapReduce 通过 Partitioner 对 key 进行分区,进而把数据按需求来分发。
什么情况使用 Partitioner
l 需要 key 按照需求分发。
l 框架默认 HashPartitioner。
主要调度方法
单队列调度
l 特点:FIFO
l 优点:简单
l 缺点:资源利用率低
容量调度
l 特点:
多队列,每个队列分配一定系统容量。
空闲队列,可以被动态分配给负载重的队列。
支持作业优先级。
l 作业选择:
选择队列:资源回收请求队列优先,最多自由空间队列优先。
选择作业:按提交时间,优先级排队;检查用户配额;检查内存。
l 优点:
支持多作业并行执行,提高资源利用率。
动态调整资源分配,提高作业执行效率。
l 缺点:
队列设置和队列选择无法自动进行,用户需要了解大量系统信息。
JobTracker
作业控制
作业抽象成三成:作业监控层(JIP)、任务控制层(TIP)、任务执行层。
任务可能会被尝试多次执行,每个任务实例被称作 Task Attempt(TA)。
TA 成功,TIP 会标注该任务成功,所有 TIP 成功,JIP 成功。
资源管理
大数据集群资源管理系统 Yarn
Yarn 架构
大数据仓库 Hive
Hive 架构
Hive 和 Hadoop 关系
Hive 编译器
Parser:把 SQL 转换为抽象语法树(AST)。
SemanOcAnalyzer:把抽象语法树转换为查询块(QB)。
Logical Plan Generator:把 QB 转换为逻辑执行计划。
Logical OpOmizer:重写执行计划,带入更多优化后的计划。
Physical Plan Generator:将逻辑执行计划转换为物理执行计划(M/R jobs)。
Physical OpOmizer:适应性 join 策略调整。
版权声明: 本文为 InfoQ 作者【Mars】的原创文章。
原文链接:【http://xie.infoq.cn/article/1092788885e544795ce262474】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论