大数据平台介绍
– 不适合一般web应用 – 不适合实时响应的任务 – 不适合小数据集的处理 – 不适合需要大量临时空间的任务 – 不适合CReduce工作原理
➢ MapReduce执行流程
– MapReduce 角色 • Client :作业提交发起者。 • JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作 业。 • TaskTracker:保持JobTracker通信,在分配的数据片段上执行 MapReduce任务。
• 设置一个Block 64MB,如果上传文件小于该值,仍然会占用一个Block的 命名空间(NameNode metadata),但是物理存储上不会占用64MB的空间
• Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以 变更,Block是不可以再上传后变更的
HDFS处理机制
MapReduce简介
➢ 适合处理的任务
– 适用于离线批处理任务 – 是以“行”为处理单位的,无法回溯已处理过的“行”,故每行都必须是一
个独立的语义单元,行与行之间不能有语义上的关联。 – 相对于传统的关系型数据库管理系统,MapReduce计算模型更适合于处理
半结构化或无结构话的数据。
➢ 不适合处理的任务
– 任务的分配 • TaskTracker和JobTracker之间的通信与任务的分配是通过心跳机制完成 的。 • TaskTracker会主动向JobTracker询问是否有作业要做,如果自己可以做 ,那么就会申请到作业任务,这个任务可以使Map也可能是Reduce任 务。
MapReduce工作原理
• Hadoop的框架最核心的设计就是:HDFS和MapReduce。 HDFS为海量的数据提供了存储,则MapReduce为海量的数 据提供了计算。
Hadoop能解决哪些问题
• 海量数据需要及时分析和处理。 • 海量数据需要深入分析和挖掘。 • 数据需要长期保存 问题: • 磁盘IO成为一种瓶颈,而非CPU资源。 • 网络带宽是一种稀缺资源 • 硬件故障成为影响稳定的一大因素
– 任务的执行 • 申请到任务后,TaskTracker会做如下事情: • 拷贝代码到本地 • 拷贝任务的信息到本地 • 启动JVM运行任务
– 状态与任务的更新 • 任务在运行过程中,首先会将自己的状态汇报给TaskTracker,然后由 TaskTracker汇总告之JobTracker。
– 作业的完成 • JobTracker是在接受到最后一个任务运行完成后,才会将任务标志为成 功。 • 此时会做删除中间结果等善后处理工作。
大数据平台介绍
大数据 二零一五年七月
目录
1 Hadoop大数据生态圈介绍 2 大数据应用介绍 3 Cloudera Manager介绍
Hadoop大数据生态圈
Hadoop生态圈
Hadoop简介
• Hadoop一个分布式系统基础架构,由Apache基金会开发。 用户可以在不了解分布式底层细节的情况下,开发分布式程 序。充分利用集群的威力高速运算和存储 。简单地说来, Hadoop是一个可以更容易开发和运行处理大规模数据的软 件平台。
HDFS适应条件
HDFS:为以流式数据访问模式存储超大文件而设计的文件系 统。 • 流式数据访问
指的是几百MB,几百GB,几百TB,甚至几百PB • 流式数据访问
HDFS建立的思想是:一次写入、多次读取模式是最高 效的。 • 商用硬件
hadoop不需要运行在昂贵并且高可靠的硬件上。
HDFS不适应条件
MapReduce工作原理
MapReduce
1
➢ 结构化、半结构化、非结构化数据
– 结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实 现的数据)
– 不方便用数据库二维逻辑表来表现的数据即称为非结构化数据(包括所有格 式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信 息等等)
– 所谓半结构化数据,就是介于完全结构化数据(如关系型数据库、面向对象 数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据 ,HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容 混在一起,没有明显的区分。
• 低延迟数据访问 HDFS是为了达到高数据吞吐量而优化的,这是以延迟为代
价的,对于低延迟访问,可以用Hbase(hadoop的子项目)。
• 大量的小文件 • 多用户写入,任意修改
HDFS基本单元
• Block(块):HDFS基本储存单元,是个逻辑单元。一个文件有可能包含多 个块,一个块有可以包含多个文件,由文件的大小和块大小的参数决定 。dfs.block.size参数。Hdfs中Block的大小,默认64MB,如果设置大, 就会有可能导致Map运行慢,设置小,有可能导致Map个数多,所有一定 要设置适当。(目前主流机器建议设置为128M)
– MapReduce 是一个高性能的批处理分布式计算框架,用于对海量数据进行 并行分析和处理。
– MapReduce 将分析任务分为大量的并行 Map 任务和 Reduce 任务两类。 – 与传统数据仓库和分析技术相比,MapReduce 适合处理各种类型的数据,
包括结构化、半结构化和非结构化数据。
• Client:切分文件;访问HDFS;与NameNode交互,获取 文件位置信息;与DataNode交互,读取和写入数据。
• NameNode:Master节点,管理HDFS的名称空间和数据块 映射信息,配置副本策略,处理客户端请求。
• DataNode:Slave节点,存储实际的数据,汇报存储信息给 NameNode。
• Secondary NameNode:辅助NameNode,分担其工作量 ;定期合并fsimage和fsedits,推送给NameNode;紧急情 况下,可辅助恢复NameNode,但Secondary NameNode并 非NameNode的热备
HDFS文件读取
MapReduce简介
➢ 简介