Hadoop大数据开发与性能调优实战培训课程Hadoop组件详解课件

上传人:3626209****147198... 文档编号:250912307 上传时间:2024-11-04 格式:PPT 页数:59 大小:2.52MB
返回 下载 相关 举报
Hadoop大数据开发与性能调优实战培训课程Hadoop组件详解课件_第1页
第1页 / 共59页
Hadoop大数据开发与性能调优实战培训课程Hadoop组件详解课件_第2页
第2页 / 共59页
Hadoop大数据开发与性能调优实战培训课程Hadoop组件详解课件_第3页
第3页 / 共59页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Hadoop,之,HDFS和MapReduce,Hadoop之HDFS和MapReduce,1,掌握mapreduce原理和开发,1,2,3,理解HDFS原理,3,应用举例讲解,培训目标,掌握mapreduce原理和开发123理解HDFS原理3应用,2,1,2,3,存储并管理PB级数据,处理非结构化数据,注重数据处理的吞吐量(,时间,不敏感),HDFS适合做什么?,4,应用模式为:write-once-read-many存取模式,123存储并管理PB级数据处理非结构化数据注重数据处理的吞吐,3,1,2,3,存储小文件 (不建议使用),大量的随机读 (不建议使用),需要对文件的修改 (不支持),HDFS不适合做什么?,123存储小文件 (不建议使用)大量的随机读 (不建议使用),4,Hadoop的特点,扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据,并且线性扩展,。,成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。,高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。,可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。,Hadoop的特点扩容能力(Scalable):能可靠地(r,5,Hadoop集群的物理分布,Hadoop集群的物理分布,6,HDFS,HDFS,7,Namenode,是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件,和,目录的元信息,以及,每个文件对应的数据块列表。,接收用户的操作请求。,NN,包括:,fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。,edits:操作日志文件。,fstime:保存最近一次checkpoint的时间,以上这些文件是保存在linux的文件系统中,Namenode是整个文件系统的管理节点。它维护着整个文件系,8,SecondaryNameNode,HA的一个解决方案。但不支持热备。,执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,同时重置NameNode的edits,。合并策略是,根据时间,和,根据edits log,变换,大小,。,默认,是,安装在NameNode节点上,,可以通过配置启动在其他节点。,SecondaryNameNodeHA的一个解决方案。但不支,9,Data,Node,一个,Block(,数据块,),在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳,DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。,心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode 的心跳,则认为该节点不可用,并把失效节点上的block备份到其他机器上面,保证副本数为3。,DataNode一个Block(数据块)在DataNode以,10,Block,文件切分成块(默认大小64M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3),因为硬件错误是常态。因此需要冗余。,NameNode是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(,生成时间,副本数,文件权限,),以及每个文件的块列表以及块所在的DataNode等等,DataNode在本地文件系统存储文件块数据,以及块数据的校验,Block文件切分成块(默认大小64M),以块为单位,每个块,11,Block的副本放置策略,第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点,第二个副本:放置在于第一个副本,相,同的机架的节点上,第三个副本:与第二个副本,不,同集群的节点,更多副本:随机节点,Block的副本放置策略第一个副本:放置在上传文件的DN;如,12,HDFS,读写流程,HDFS 读写流程,13,HDFS读写流程,读文件流程,client端发送读文件请求给namenode,如果文件不存在,返回错误信息,否则,将该文件对应的block及其所在datanode位置发送给client,client收到文件位置信息后,与不同datanode建立socket连接并行获取数据。,写文件流程,client端发送写文件请求,namenode检查文件是否存在,如果已存在,直接返回错误信息,否则,发送给client一些可用datanode节点,client将文件分块,并行存储到不同节点上datanode上,发送完成后,client同时发送信息给namenode和datanode,namenode收到的client信息后,发送确信信息给datanode,datanode同时收到namenode和datanode的确认信息后,提交写操作。,HDFS读写流程读文件流程,14,15,HDFS为了做到可靠性(reliability)创建了多份数据块(data blocks)的复制(replicas),并将它们放置在服务器群的计算节点中(compute nodes),MapReduce就可以在它们所在的节点上处理这些数据了。,15HDFS为了做到可靠性(reliability)创建了多,15,数据损坏处理,当DN读取block的时候,它会计算checksum;,如果计算后的checksum,与block创建时值不一样,说明该block,已经损坏。,client读取其它DN上的block;NN标记该块已经损坏,然后复制block达到预期设置的文件备份数;,数据损坏处理当DN读取block的时候,它会计算checks,16,HDFS安全模式,Namenode启动时会先经过一个“安全模式”阶段,安全模式阶段不会产生数据写,在此阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的,在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束,当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数,HDFS安全模式Namenode启动时会先经过一个“安全模式,17,HDFS文件权限,与Linux文件权限类似,r: read; w:write; x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容,如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsan,HDFS的权限目的:阻止好人做错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁,HDFS文件权限与Linux文件权限类似,18,HDFS回收站,删除文件时,其实是放入回收站/trash,回收站里的文件可以快速恢复,可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块,修改core-site.xml,fs.trash.interval,1440,Number of minutes between trash checkpoints.,If zero, the trash feature is disabled.,HDFS回收站删除文件时,其实是放入回收站/trash,19,HDFS开发常用命令,-help cmd/显示命令的帮助信息,-ls(r) /显示当前目录下所有文件,-du(s) /显示目录中所有文件大小,-count-q /显示目录中文件数量,-mv /移动多个文件到目标目录,-cp /复制多个文件到目标目录,-rm(r)/删除文件(夹),-put /本地文件复制到hdfs,-copyFromLocal/同put,-moveFromLocal/从本地文件移动到hdfs,-get -ignoreCrc /复制文件到本地,可以忽略crc校验,-getmerge /将源目录中的所有文件排序合并到一个文件中,-cat /在终端显示文件内容,-text /在终端显示文件内容,-copyToLocal -ignoreCrc /复制到本地,-moveToLocal ,-mkdir /创建文件夹,-touchz /创建一个空文件,HDFS开发常用命令-help cmd/显示命令的帮,20,MapReduce,MapReduce,21,22,Why MapReduce,为什么我们不能使用数据库加上更多磁盘来做大规模的批量分析?为什么我们需要,MapReduce,?,这个问题的答案来自于磁盘驱动器的一个发展趋势:,寻址时间的提高速度远远慢于传输速率的提高速度。,寻址就是将磁头移动到特定位置进行读写操作的工序。,它的特点是磁盘操作有延迟。,关系型数据库和,MapReduce,的比较:,22Why MapReduce为什么我们不能使用数据库加上,22,Why Map / Reduce?,二、Divide and Conquer(分而治之),Why Map / Reduce?二、Divide and,23,MapReduce特性,自动实现分布式并行计算,容错,提供状态监控工具,模型抽象简洁,程序员易用,MapReduce特性自动实现分布式并行计算,24,Hadoop大数据开发与性能调优实战培训课程Hadoop组件详解课件,25,MapReduce执行流程,MapReduce执行流程,26,JobTracker(JT)和TaskTracker(TT)简介,JobTracker(JT)和TaskTracker(TT),27,JobTracker失败,1)JobTracker失败在所有的失败中是最严重的一种。,2)hadoop没有处理jobtracker失败的机制。-它是一个单点故障。,3)在未来的新版本中可以运行多个JobTracker。,4)可以使用ZooKeeper来协作JobTracker。,JobTracker失败1)JobTracker失败在所有的,28,TaskTracker失败,1)一个TaskTracker由于崩溃或运行过于缓慢而失败,它会向JobTracker发送“心跳”。,2)如果有未完成的作业,JobTracker会重新把这些任务分配到其他的TaskTracker上面运行。,3)即使TaskTracker没有失败也可以被JobTracker列入黑名单。,TaskTracker失败1)一个TaskTracker由于,29,Combiner,InputSplits,Mapper,Partitioner,& Shuffle,& Sort,InputFormat,Reducer,RecordReader,MapReduce核心组件,CombinerInputSplitsMapperParti,30,文件输入格式InputFormat,定义了数据文件如何分割和读取,InputFile提供了以下一些功能,选择文件或者其它对象,用来作为输入,定义InputSplits, 将一个文件分为不同任务,为RecordReader提供一个工厂,用来读取这个文件,有一个抽象的类FileInputFormat,FileInputFormat从这个目录中读取所有文件,然后FileInputFormat将这些文件分割为多个InputSplits。,通过在JobConf对象上设置JobConf.setInputFormat设置文件输入的格式,文件输入格式InputFormat定义了数据文件如何分割和读,31,输入数据分块InputSplits,InputSplit定义了输入到单个Map,任务的输入数据,一个MapReduce程序被统称为,一个Job,可能有上百个任务构成,InputSplit将文件分为64MB的大,配置文件hadoop-site.xml中的mapred.min.split.size参数控制这个大小,mapred.tasktracker.map.taks.maximum用来控制某一个节点上所有map任务的最大数目,输入数据分块InputSplitsInputSplit定义了,32,数据记录读入RecordReader,InputSplit定义了一个数据分块,但是没有定义如何读取数据记录,RecordReader实际上定义了如何将数据记录转化为一个(key,value)对的详细方法,并将数据记录传给Mapper类,TextInputFormat提供了LineRecordReader,,读入一个文本行数据记录,数据记录读入RecordReaderInputSplit定义,33,Mapper,每一个Mapper类的实例生成了一个Java进程,负责处理某一个InputSplit上的数据,有两个额外的参数OutputCollector以及Reporter,前者用来收集中间结果,后者用来获得环境参数以及设置当前执行的状态。,现在的版本用,Mapper.Context,提供给每一个Mapper函数,用来提供上面两个对象的功能,Mapper每一个Mapper类的实例生成了一个Java进程,34,Combiner,合并相同key的键值对,减少partitioner时候的数据通信开销,conf.setCombinerClass(Reduce.class);,是在本地执行的一个Reducer,满足一定的条件才能够执行。,Combiner,35,Partitioner & Shuffle&Sort,Partitioner & Shuffle,在Map工作完成之后,每一个 Map函数会将结果传到对应的Reducer所在的节点,此时,用户可以提供一个Partitioner类,用来决定一个给定的(key,value)对传给哪个节点,Sort,传输到每一个Reducer节点上的、将被所有的Reduce函数接收到的Key,value对会被Hadoop自动排序(即Map生成的结果传送到某一个节点的时候,会被自动排序),Partitioner & Shuffle&SortPart,36,Reducer,做用户定义的Reduce操作,接收到一个OutputCollector的类作为输出,新版本的编程接口是,Reducer.Context,Reducer做用户定义的Reduce操作,37,文件输出格式OutputFormat,写入到HDFS的所有OutputFormat都继承自FileOutputFormat,每一个Reducer都写一个文件到一个共同的输出目录,文件名是part-nnnnn,其中nnnnn是与每一个reducer相关的一个号(partition id),FileOutputFormat.setOutputPath(),JobConf.setOutputFormat(),文件输出格式OutputFormat写入到HDFS的所有Ou,38,MapReduce,MapReduce,39,MapReduce,MapReduce,40,MapReduce,JobTracker一直在等待JobClient提交作业,TaskTracker每隔3秒向 JobTracker发送心跳heartbeat询问有没有任务可做,如果有,让其派发任务给它执行,这是一道pull过程: slave主动向master拉生意,MapReduceJobTracker一直在等待JobCli,41,MapReduce,特点:Fault-tolerant 容错,很重要!,M/R Failures,Task fails,Try again?,Try again somewhere else?,Report failure,只有当map处理全部结束后,reduce过程才能够开始,Map需要考虑数据局部性,Reduce无需考虑数据局部性,MapReduce特点:Fault-tolerant 容错,,42,单一Reduce处理,单一Reduce处理,43,多个Reduce处理,多个Reduce处理,44,无Reduce处理,无Reduce处理,45,Hadoop平台应用特点,多种应用共用一个Hadoop平台,生产性应用:数据加载,统计值计算,垃圾数据分析等,批作业:机器学习等,交互式作业:SQL查询、样本采集等,不同应用对硬件资源要求不同,I/O密集型作业,如:机器学习算法,CPU密集型作业:如:过滤,统计值计算,正则匹配等,作业之间存在依赖关系,如何提高Hadoop平台资源利用效率? 作业合理调度、监控,Hadoop平台应用特点多种应用共用一个Hadoop平台,46,MapReduce,MapReduce的应用:,【1】日志分析,【2】排序,【3】搜索、搜索引擎,创建索引,【4】广告计算,广告优化、分析,点击流分析,链接分析,【5】搜索关键字进行内容分类,【6】计数,统计值计算,统计数据,过滤,分析,查询,【7】垃圾数据分析,【8】数据分析,【9】机器学习,【10】数据挖掘,【11】大规模图像转换(纽约时报使用Hadoop 和EC2在36个小时内将4TB的TIFF图像包括405K大TIFF图像,3.3M SGML文章和405K XML文件 转换为800K适合在Web上使用的PNG图像),MapReduceMapReduce的应用:,47,精彩案例,精彩案例,48,案例 1:数据仓库构建,Hadoop 前的数据仓库流程,Perl/Python、Shell、awk,案例 1:数据仓库构建Hadoop 前的数据仓库流程,49,精彩案例,Hadoop后的数据仓库流程,Hive、Pig、MR、工作流,精彩案例Hadoop后的数据仓库流程,50,案例2:Yahoo,2010年10月,Yahoo拥有38000台服务器,有超过4000个以上的服务器集群,数据总量达到了170PB,每日的数据增量在10TB以上。,案例2:Yahoo2010年10月,Yahoo拥有3800,51,Yahoo应用揭秘,Yahoo的Hadoop应用包含有搜索、日志处理(Analytics, Reporting, Buzz)、用户建模、内容优化,垃圾邮件过滤器以及广告计算等。,网络分析。Yahoo目前有超过100亿个网页,1PB的网页数据内容,2万亿条链接,每日面临这300TB的数据输出。在应用Hadoop前,实施这一过程最少1个月的时间,但应用后仅需要2天,Yahoo应用揭秘Yahoo的Hadoop应用包含有搜索、日,52,Yahoo应用揭秘,Yahoo搜索。服务器上保留有用户3年来的搜索记录,这个数据是由超过 10TB。如果数据重整,之前需要1个月的时间进行处理,而在有了Hadoop后仅仅需要30分钟,Hadoop也非万能,它采用Java实现,Java的IO处理虽然没有性能瓶颈,但是对于CPU密集型的任务是一个麻烦, 因此,有些算法效率不会提高很多。,Yahoo应用揭秘Yahoo搜索。服务器上保留有用户3年来的,53,案例,3,:Facebook,Web Servers,Scribe MidTier,Filers,Production,Hive-Hadoop,Cluster,Oracle RAC,Federated MySQL,Scribe-Hadoop Clusters,Adhoc,Hive-Hadoop,Cluster,Hive replication,案例3:FacebookWeb ServersScribe,54,55,Facebook数据仓库,Hadoop基础平台,自动化ETL,元数据发现,日志查询(HIVE),特殊工作流和扩展,报表工具,监控和报警,55Facebook数据仓库Hadoop基础平台,55,Facebook任务统计,每天任务统计,10TB 压缩数据新增/天,135TB 扫描数据总量/天,7500+ 任务/天,80K 计算小时/天,95% Hadoop任务使用Hive,Facebook任务统计每天任务统计,56,Facebook应用,报表,天/周的展示、点击统计汇总,用户参与度计算,战略决策服务,Ad hoc分析,机器学习(ad方向),Facebook应用报表,57,案例,4,:Taobao,案例4:Taobao,58,Thanks,Thanks,59,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!