Hadoop大数据平台介绍目录HDFS介绍Hadoop概述MapReduce介绍如何对大数据进行存储与分析呢?系统瓶颈存储容量读写速度计算效率…Google大数据技术MapReduceBigTableGFS革命性变化1:成本降低,能用PC机,就不用大型机和高端存储小型机大型机磁盘阵列……革命性变化1:成本降低,能用PC机,就不用大型机和高端存储革命性变化1:成本降低,能用PC机,就不用大型机和高端存储革命性变化2:软件容错硬件故障视为常态,通过软件保证可靠性硬件故障软件高可靠性革命性变化3:简化并行分布式计算,无须控制节点同步和数据交换MapReduce但是,Google只发表了相关的技术论文,没有开放源代码。一个模仿Google大数据技术的开源实现来了。为何取名Hadoop?Hadoop是什么?开源的分布式存储+分布式计算平台Hadoop的组成包括两个核心组成:HDFS:分布式文件系统,存储海量的数据MapReduce:并行处理框架,实现任务分解和调度Hadoop可以用来做什么?搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务搜索引擎商业智能数据挖掘日志分析Hadoop的优势优势1:高扩展优势2:低成本优势3:成熟的生态圈目录HDFS介绍Hadoop概述MapReduce介绍HDFS基本概念块(Block)NameNodeDataNodeHDFS的文件被分成块进行存储HDFS块的默认大小是64MB块是文件存储处理的逻辑单元HDFS中有两类节点NameNode和DataNodeNameNode是管理节点,存放文件元数据①文件与数据块的映射表②数据块与数据节点的映射表HDFS体系结构机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据读取数据块元数据更新ACDAEBCEDACBDBEDataNode是HDFS的工作节点,存放数据块机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据读取数据块元数据更新ACDAEBCEDACBDBEHDFS体系结构HDFS中数据管理与容错数据块副本机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据读取数据块元数据更新ACDAEBCEDACBDBE每个数据块3个副本,分布在两个机架内的三个节点数据块副本机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据读取数据块元数据更新ACDAEBCEDACBDBE每个数据块3个副本,分布在两个机架内的三个节点数据块副本机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据读取数据块元数据更新ACDAEBCEDACBDBE每个数据块3个副本,分布在两个机架内的三个节点心跳检测机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据心跳消息ACDAEBCEDACBDBEDataNode定期向NameNode发送心跳消息心跳消息心跳消息心跳检测机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据心跳消息ACDAEBCEDACBDBEDataNode定期向NameNode发送心跳消息心跳消息心跳消息机架1机架2NameNodeSecondaryNameNode客户端复制DataNode1DataNode2DataNode3DataNode4DataNode5读取元数据读取数据块元数据更新ACDAEBCEDACBDBE二级NameNode二级NameNode定期同步元数据映射文件和修改日志NameNode发生故障时,备胎转正。EditlogFsImageHDFS中文件读写的流程机架1机架2NameNodeSecondaryNameNode客户端DataNode1DataNode2DataNode3DataNode4DataNode5①文件读取请求ACDAEBCEDACBDBEHDFS读取文件的流程②返回元数据③读取数据块③读取数据块③读取数据块机架1机架2NameNodeSecondaryNameNode客户端DataNode1DataNode2DataNode3DataNode4DataNode5①文件拆分成块ACDAEBCEDACBDBEHDFS写入文件的流程②返回DataNodes③写入数据块④流水线复制⑤更新元数据HDFS的特点①数据冗余,硬件容错②流式的数据访问③适合存储大文件HDFS写入文件的流程机架1机架2NameNodeSecondaryNameNode客户端DataNode1DataNode2DataNode3DataNode4DataNode5①文件拆分成块ACDAEBCEDACBDBE②返回DataNodes③写入数据块④流水线复制⑤更新元数据HDFS的特点适用性和局限性-适合数据批量读写,吞吐量高-不适合交互式应用,低延迟很难满足-适合一次写入多次读取,顺序读写-不支持多用户并发写相同文件目录HDFS介绍Hadoop概述MapReduce介绍MapReduce原理分而治之,一个大任务分成多个小的子任务(Map),并行执行后,合并结果(Reduce)100GB网站访问日志文件,找出访问次数最多的IP地址split0split1split2split3split4map()map()map()map()map()reduce()reduce()reduce()part0part1part2inputmaptasksreducetasksoutputInputsplitshuffleoutput交换日志切分统计IP出现次数中间结果合并排序日志日志日志日志日志split0split1split2split3split4map()map()map()map()map()reduce()reduce()reduce()part0part1part2inputmaptasksreducetasksoutputInputsplitshuffleoutput交换日志切分统计IP出现次数中间结果合并排序日志日志日志日志日志IP1IP1IP1IP1IP1IP2IP2IP2IP2IP2IP3IP3IP3IP3IP3X次Y次Z次……split0split1split2split3split4map()map()map()map()map()reduce()reduce()reduce()part0part1part2inputmaptasksreducetasksoutputInputsplitshuffleoutput交换日志切分统计IP出现次数中间结果合并排序日志日志日志日志日志IP1IP2IP3X次Y次Z次split0split1split2split3split4map()map()map()map()map()reduce()reduce()reduce()part0part1part2inputmaptasksreducetasksoutputInputsplitshuffleoutput交换日志切分统计IP出现次数中间结果合并排序MapReduce的运行流程基本概念Job&TaskJobTrackerTaskTrackerMapTaskReduceTaskMapTaskTrackerReduceTaskTrackerJobTracker客户端TaskTracker1DataNode1TaskTreacker2DataNode2TaskTracker3DataNode3TaskTracker4DataNode4TaskTracker5DataNode5作业(Job)Reduce任务ACDAEBCEDACBDBEHadoopMapReduce体系结构Map任务状态更新JobTracker的角色①作业调度②分配任务、监控任务执行进度③监控TaskTracker的状态TaskTracker的角色①执行任务②汇报任务状态Map端MapReduce作业执行过程MapReduceJobJobTrackerSchedulerTaskTrackerTaskTrackerTaskTrackerTaskTrackerTaskTrackerReduce端HDFS数据片段提交分配Map任务分配Reduce任务输入数据Map任务中间结果(Key-Value对)Reduce任务输出结果MapReduce的容错机制①重复执行X4MapReduce的容错机制①重复执行②推测执行Map端Map端Map端MapReduce的容错机制①重复执行②推测执行Reduce端TaskTrackerTaskTrackerTaskTracker