hadoop系统分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行辅助namenode,定期通过编辑日志合并命名空间镜像。Slave namenode需要和 master namenode配置相同,在namenode挂掉后启动。但slave namenode 的数据滞后于 master,会丢失数据。
HDFS系统分析---HA(DataNode)
Block备份:缺省设置Block会有三份备份。这种备份机制综合考虑 同一Rack的失败情况以及不同Rack之间数据拷贝性能问题就采用这 种配置方式。
几个重要对象:
Master(Job Tracker):对应HDFS的namenode,负责 job的接收、调度、监控、结束、返回。负责调度 slave节点的tasktracker 来运行task,接收tasktracker发 送的task运行状态,向client返回job执行结果。 Slave(Task Tracker):对应HDFS的 data node,负责 本节点task的控制、运行。向master的job tracker 报告 task的执行状况。
元数据 cache in memory 数据块 64M ------ 512Byte 优势: (1)文件的大小不收单个磁盘容量限制。 (2)简化了分布式文件系统的设计。 (3)适于数据备份,利于提供HA。 (4)有利于LB,提高幵发read效率。
HDFS系统分析 ------运行视图
HDFS系统分析---运行视图
Hadoop体系架构---优势
高度可扩展:可劢态增加/削减计算节点,真正实现弹性计算。
经济:以运行在任何普通的PC上 高容错能力:支持任务自劢迁移、重试和预测执行,不受计算节点故障 影响。 可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保 证了分布式处理的可靠性。 高效:分布式文件系统的高效数据交互实现以及MapReduce结合Local Data处理的模式,为高效处理海量的信息作了基础准备。 就近调度算法: 调度任务到最近的数据节点,有效降低网络带宽。 劢态灵活的资源分配和调度:达到资源利用最大化,计算节点不会出现 闲置和过载的情况;同时支持资源配额管理。
Map Reduce实例
Map Reduce <key,value> 转换过程
Map: (K1,V1) ------> list (K2,V2) Shuffle:list(k2,V2) ------> (K2,list(V2)) Reduce: (K2,list(V2)) ------> (K3,V3)
Hadoop系统分析
运营支撑开发部 董杰平
中国电信集团系统集成有限责任公司 2012年12月
目录
Hadoop体系架构
HDFS系统分析 Map Reduce系统分析 Map Reduce实例 Map Reduce开发
Hbase简介
Hive简介 Hive+ Hbase
Hadoop体系架构
Hadoop体系架构---概述
HDFS是Map Reduce的基础
Map Reduce实例
Map Reduce实例
处理一批有关天气的数据,其格式如下: 1、按照ASCII码存储,每行一条记录 2、每一行字符从0开始计数,第15个到第18个字符为年 3、第25个到第29个字符为温度,其中第25位是符号+/0067011990999991950051507+0000+ 0043011990999991950051518-0011+ 0043012650999991949032412+0111+ 0043012650999991949032418+0078+ 0067011990999991937051507+0001+ 0043011990999991937051512-0002+ 0043011990999991945051518+0001+
Map Reduce系统分析
ຫໍສະໝຸດ Baidu
Map Reduce 简介
一个用于分布式数据处理的编程模型和运行环境。 设计原则
moving computation is more cheaper than moving data
如果数据是分布的,就要把计算也分布,让计算去尽量靠近数据, 最后再把计算结果数据进行汇总。
HDFS系统分析---HA(NameNode)
星型拓扑:name node是单节点运行,一旦name node毁坏,整个系统的数据将全部丢失 三种容错机制: 备份namenode上组成文件系统元数据的文件,这些元数据包括命名空间、目录树、文件、 文件块等。可通过配置使hadoop的name node在多个文件系统中保持原数据,一般配置为 同步写入(原子操作)本地磁盘和NFS存储中。 namenode集群(ing)
MapReduce:2004年 Google paper
Hadoop:起源于Apache开源项目Nutch
Hadoop体系架构---系统架构
HDFS:分布式文件系统,底层基于操作系统的文件系统。Googel GFS开源实现 MapReduce:2004年google paper,一个编程模型。 Hbase:基于HDFS,面向列的分布式数据库。Google的 BigTable开源 Hive:基于Hadoop的数据仓库架构,HDFS存储,MapReduce计算 Pig:类似于Hive,检索大批量数据,基于hdfs 、 MapReduce ZooKeeper:分布式协调系统,避免单点故障 Avro:RPC,data serialize and persistence Sqoop:HDFS和RMDB间数据转换工具
Amazon EC2 中的Hadoop: Amazon EC2 是一个计算服务,运行客户租 用计算机运行自己的应用,按活劢运行的时间计费。
微软近日宣布开发一个兼容Windows Server与Windows Azure平台的 Hadoop开源版本。 IBM、EMC、Oracle
HDFS系统分析
HDFS系统分析---系统结构(静态视图)
几个重要对象:
master/slave 管理节点(NameNode ) 工作节点(DataNode) 文件系统命名空间
元数据(Meta-data, 150B)
数据块(block)
HDFS Client
HDFS系统分析---系统结构(静态视图)
Hadoop体系架构---案例
Yahoo!使用4000节点的机群运行Hadoop,支持广告系统和 Web搜索的研 究 Facebook使用1000节点的机群运行Hadoop,存储日志数据,支持其上的 数据分析和机器学习 百度用Hadoop处理每周 200TB的数据,进行搜索日志分析和网页数据挖 掘工作 淘宝的Hadoop系统用于存储幵处理电子商务的交易相关数据
Map Reduce系统结构(静态视图)
和HDFS一样的master/slave模式的星型结构,一台Master,是HDFS的 NameNode及Map Reduce 的Job 节点。多台Slave,每台Slave负责 DataNode及Task工作。Job节点协调控制,task节点干活。
Map Reduce系统结构(静态视图)
经过考验:实际生产环境验证( Yahoo 、 Facebook 、baidu ……)
Hadoop体系架构---缺点
低延时访问不适用 HDFS是设计用于大吞吐量数据,Hbase有低延时要求的应用程序。
大量小文件处理开销大 (1)Namenode把文件系统的元数据放置在内存中,文件、文件夹和 Block等元数据每一个占据150字节左右的空间 (2)Map task的数量是由splits来决定的 不支持并发多用户写 不支持在文件的任意位置进行修改。追加???NO
HDFS系统分析---交互视图(读取)
Client向NameNode发起文件读取的请求。 NameNode返回文件存储的DataNode的信息,因此name node仅从内存中返回block等 meta data,不负责具体文件数据的传输,因此非常高效。这样就把数据传输的压力分散 到整个集群。 Client从data node中读取数据,若读取发生错误,会询问name node从最近的相邻节点重 新读取
(1937, [1, -2]) (1945, [1,]) (1949, [111, 78]) (1950, [0, –11])
在reduce过程中,在列表中选择出最大的温度,将年-最大温度的key-value作 为输出:
(1937, 1) (1945, 1) (1949, 111) (1950, 22)
统计出每年的最高温度
Map Reduce实例
Map和Reduce每一步都有key-value对作为输入和输出:
map阶段的key-value对的格式是由输入的格式所决定的,如果是默认的 TextInputFormat,则每行作为一个记录进程处理,其中key为此行的开 头相对于文件的起始位置,value就是此行的字符文本。 例子中的数据,在map过程,输入的key-value对如下: (0, 0067011990999991950051507+0000+) (66, 0043011990999991950051518-0011+) (99, 0043012650999991949032412+0111+) (132, 0043012650999991949032418+0078+) (165, 0067011990999991937051507+0001+) (198, 0043011990999991937051512-0002+) (231, 0043011990999991945051518+0001+)
Map Reduce实例
在map过程中,通过对每一行字符串的解析,得到年-温度的key-value对作为 输出:
(1950, 0) (1950, -11) (1949, 111) (1949, 78) (1937, 1) (1937, -2) (1945, 1)
Map Reduce实例
在reduce过程,将map过程中的输出,按照相同的key将value放到同一个列表 中作为reduce的输入
HDFS系统分析---交互视图(备份)
NameNode通过检查meta data发现部分文件的Block不符合最小复制数或者部分DataNode 失效。 通知DataNode相互复制Block。 DataNode之间直接相互复制block,复制成功向name node 上报自己的 block meta data。
心跳检测DataNode的状态:namenode发现异常则在其他DataNode 上相互复制异常DataNode的Block。
数据流水线式写入。 安全模式:分布式文件系统启动时,开始进入安全模式,文件系 统中的内容不允许修改也 不允许删除。安全模式中系统检查 DataNode上数据块的有效性,根据策略复制或者删除block。运行 期通过命令也可以进入安全模式。
Name node Data node Client
写入(append??? no) 读取(stream、no seek、multi reader) 备份
HDFS系统分析---交互视图(写入)
Client发起文件写入(local cache block) 向NameNode申请DataNode(replication 个)。 NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息 Client根据DataNode的地址信息,写入到第一个DataNode块中。多个DataNode流水线写 入成功,并且client收到写入成功消息,后开始下一block的写入。 Client 关闭写入流,local cache中剩余数据流水线方式写入多个DataNode中。 写入异常: Client把异常节点从流水线中删除,继续向剩余节点写入数据。当namenode节点 发现block的备份数量不够时,再进行复制。