欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Hadoop大数据开发与性能调优实战培训课程(2)Hadoop组件详解59.ppt

    • 资源ID:78664379       资源大小:2.44MB        全文页数:59页
    • 资源格式: PPT        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Hadoop大数据开发与性能调优实战培训课程(2)Hadoop组件详解59.ppt

    HadoopHadoop之之HDFSHDFS和和MapReduceMapReduce2021/9/261掌握mapreduce原理和开发123理解HDFS原理3应用举例讲解培训目标2021/9/262123存储并管理PB级数据处理非结构化数据注重数据处理的吞吐量(时间不敏感)HDFS适合做什么?4应用模式为:write-once-read-many存取模式2021/9/263123存储小文件(不建议使用)大量的随机读(不建议使用)需要对文件的修改(不支持)HDFS不适合做什么?2021/9/264Hadoop的特点l扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据并且线性扩展。l成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。l高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。l可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。2021/9/265Hadoop集群的物理分布2021/9/266HDFS2021/9/267Namenodel是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件和目录的元信息以及每个文件对应的数据块列表。接收用户的操作请求。NN包括:lfsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。ledits:操作日志文件。lfstime:保存最近一次checkpoint的时间l以上这些文件是保存在linux的文件系统中2021/9/268SecondaryNameNodeHA的一个解决方案。但不支持热备。执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,同时重置NameNode的edits。合并策略是根据时间和根据edits log变换大小。默认是安装在NameNode节点上,可以通过配置启动在其他节点。2021/9/269DataNodel一个Block(数据块)在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳lDataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。l心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode 的心跳,则认为该节点不可用并把失效节点上的block备份到其他机器上面,保证副本数为3。2021/9/2610Blockl文件切分成块(默认大小64M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3),因为硬件错误是常态。因此需要冗余。lNameNode是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表以及块所在的DataNode等等lDataNode在本地文件系统存储文件块数据,以及块数据的校验2021/9/2611Block的副本放置策略l第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点l第二个副本:放置在于第一个副本相同的机架的节点上l第三个副本:与第二个副本不同集群的节点l更多副本:随机节点2021/9/2612HDFS 读写流程2021/9/2613HDFS读写流程读文件流程lclient端发送读文件请求给namenode,如果文件不存在,返回错误信息,否则,将该文件对应的block及其所在datanode位置发送给clientlclient收到文件位置信息后,与不同datanode建立socket连接并行获取数据。写文件流程l client端发送写文件请求,namenode检查文件是否存在,如果已存在,直接返回错误信息,否则,发送给client一些可用datanode节点l client将文件分块,并行存储到不同节点上datanode上,发送完成后,client同时发送信息给namenode和datanodel namenode收到的client信息后,发送确信信息给datanodeldatanode同时收到namenode和datanode的确认信息后,提交写操作。2021/9/261415HDFS为了做到可靠性(reliability)创建了多份数据块(data blocks)的复制(replicas),并将它们放置在服务器群的计算节点中(compute nodes),MapReduce就可以在它们所在的节点上处理这些数据了。2021/9/2615数据损坏处理l当DN读取block的时候,它会计算checksum;l如果计算后的checksum,与block创建时值不一样,说明该block 已经损坏。lclient读取其它DN上的block;NN标记该块已经损坏,然后复制block达到预期设置的文件备份数;2021/9/2616HDFS安全模式lNamenode启动时会先经过一个“安全模式”阶段l安全模式阶段不会产生数据写l在此阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的l在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束l当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数2021/9/2617HDFS文件权限l与Linux文件权限类似lr:read;w:write;x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容l如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsanlHDFS的权限目的:阻止好人做错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁2021/9/2618HDFS回收站l删除文件时,其实是放入回收站/trashl回收站里的文件可以快速恢复l可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块修改core-site.xml fs.trash.interval 1440 Number of minutes between trash checkpoints.If zero,the trash feature is disabled.2021/9/2619HDFS开发常用命令l-help cmd/显示命令的帮助信息l-ls(r)/显示当前目录下所有文件l-du(s)/显示目录中所有文件大小l-count-q/显示目录中文件数量l-mv /移动多个文件到目标目录l-cp /复制多个文件到目标目录l-rm(r)/删除文件(夹)l-put /本地文件复制到hdfsl-copyFromLocal/同putl-moveFromLocal/从本地文件移动到hdfsl-get-ignoreCrc /复制文件到本地,可以忽略crc校验l-getmerge /将源目录中的所有文件排序合并到一个文件中l-cat/在终端显示文件内容l-text/在终端显示文件内容l-copyToLocal-ignoreCrc /复制到本地l-moveToLocal l-mkdir /创建文件夹l-touchz /创建一个空文件2021/9/2620MapReduce2021/9/262122Why MapReduce为什么我们不能使用数据库加上更多磁盘来做大规模的批量分析?为什么我们需要MapReduce?这个问题的答案来自于磁盘驱动器的一个发展趋势:寻址时间的提高速度远远慢于传输速率的提高速度。寻址就是将磁头移动到特定位置进行读写操作的工序。它的特点是磁盘操作有延迟。关系型数据库和MapReduce的比较:2021/9/2622Why Map/Reduce?二、Divide and Conquer(分而治之)2021/9/2623MapReduce特性l自动实现分布式并行计算l容错l提供状态监控工具l模型抽象简洁,程序员易用2021/9/26242021/9/2625MapReduce执行流程2021/9/2626JobTracker(JT)和TaskTracker(TT)简介2021/9/2627JobTracker失败1)JobTracker失败在所有的失败中是最严重的一种。2)hadoop没有处理jobtracker失败的机制。-它是一个单点故障。3)在未来的新版本中可以运行多个JobTracker。4)可以使用ZooKeeper来协作JobTracker。2021/9/2628TaskTracker失败1)一个TaskTracker由于崩溃或运行过于缓慢而失败,它会向JobTracker发送“心跳”。2)如果有未完成的作业,JobTracker会重新把这些任务分配到其他的TaskTracker上面运行。3)即使TaskTracker没有失败也可以被JobTracker列入黑名单。2021/9/2629MapReduce核心组件2021/9/2630文件输入格式InputFormat定义了数据文件如何分割和读取InputFile提供了以下一些功能选择文件或者其它对象,用来作为输入定义InputSplits,将一个文件分为不同任务为RecordReader提供一个工厂,用来读取这个文件有一个抽象的类FileInputFormat,FileInputFormat从这个目录中读取所有文件,然后FileInputFormat将这些文件分割为多个InputSplits。通过在JobConf对象上设置JobConf.setInputFormat设置文件输入的格式2021/9/2631输入数据分块InputSplitsInputSplit定义了输入到单个Map 任务的输入数据一个MapReduce程序被统称为 一个Job,可能有上百个任务构成InputSplit将文件分为64MB的大配置文件hadoop-site.xml中的mapred.min.split.size参数控制这个大小mapred.tasktracker.map.taks.maximum用来控制某一个节点上所有map任务的最大数目2021/9/2632数据记录读入RecordReaderInputSplit定义了一个数据分块,但是没有定义如何读取数据记录RecordReader实际上定义了如何将数据记录转化为一个(key,value)对的详细方法,并将数据记录传给Mapper类TextInputFormat提供了LineRecordReader,读入一个文本行数据记录2021/9/2633Mapper每一个Mapper类的实例生成了一个Java进程,负责处理某一个InputSplit上的数据有两个额外的参数OutputCollector以及Reporter,前者用来收集中间结果,后者用来获得环境参数以及设置当前执行的状态。现在的版本用Mapper.Context提供给每一个Mapper函数,用来提供上面两个对象的功能2021/9/2634Combiner合并相同key的键值对,减少partitioner时候的数据通信开销conf.setCombinerClass(Reduce.class);是在本地执行的一个Reducer,满足一定的条件才能够执行。2021/9/2635Partitioner&Shuffle&SortPartitioner&Shuffle在Map工作完成之后,每一个 Map函数会将结果传到对应的Reducer所在的节点,此时,用户可以提供一个Partitioner类,用来决定一个给定的(key,value)对传给哪个节点Sort传输到每一个Reducer节点上的、将被所有的Reduce函数接收到的Key,value对会被Hadoop自动排序(即Map生成的结果传送到某一个节点的时候,会被自动排序)2021/9/2636Reducer做用户定义的Reduce操作接收到一个OutputCollector的类作为输出新版本的编程接口是Reducer.Context2021/9/2637文件输出格式OutputFormat写入到HDFS的所有OutputFormat都继承自FileOutputFormat每一个Reducer都写一个文件到一个共同的输出目录,文件名是part-nnnnn,其中nnnnn是与每一个reducer相关的一个号(partition id)FileOutputFormat.setOutputPath()JobConf.setOutputFormat()2021/9/2638MapReduce2021/9/2639MapReduce2021/9/2640MapReduceJobTracker一直在等待JobClient提交作业TaskTracker每隔3秒向 JobTracker发送心跳heartbeat询问有没有任务可做,如果有,让其派发任务给它执行这是一道pull过程:slave主动向master拉生意2021/9/2641MapReduce特点:Fault-tolerant 容错,很重要!M/R Failures Task fails Try again?Try again somewhere else?Report failure只有当map处理全部结束后,reduce过程才能够开始Map需要考虑数据局部性,Reduce无需考虑数据局部性2021/9/2642单一Reduce处理2021/9/2643多个Reduce处理2021/9/2644无Reduce处理2021/9/2645Hadoop平台应用特点多种应用共用一个Hadoop平台生产性应用:数据加载,统计值计算,垃圾数据分析等批作业:机器学习等交互式作业:SQL查询、样本采集等不同应用对硬件资源要求不同I/O密集型作业,如:机器学习算法CPU密集型作业:如:过滤,统计值计算,正则匹配等作业之间存在依赖关系如何提高Hadoop平台资源利用效率?作业合理调度、监控2021/9/2646MapReduceMapReduce的应用:【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图像)2021/9/2647精彩案例2021/9/2648案例 1:数据仓库构建Hadoop 前的数据仓库流程Perl/Python、Shell、awk2021/9/2649精彩案例Hadoop后的数据仓库流程Hive、Pig、MR、工作流 2021/9/2650案例2:Yahoo2010年10月,Yahoo拥有38000台服务器,有超过4000个以上的服务器集群,数据总量达到了170PB,每日的数据增量在10TB以上。2021/9/2651Yahoo应用揭秘Yahoo的Hadoop应用包含有搜索、日志处理(Analytics,Reporting,Buzz)、用户建模、内容优化,垃圾邮件过滤器以及广告计算等。网络分析。Yahoo目前有超过100亿个网页,1PB的网页数据内容,2万亿条链接,每日面临这300TB的数据输出。在应用Hadoop前,实施这一过程最少1个月的时间,但应用后仅需要2天2021/9/2652Yahoo应用揭秘Yahoo搜索。服务器上保留有用户3年来的搜索记录,这个数据是由超过 10TB。如果数据重整,之前需要1个月的时间进行处理,而在有了Hadoop后仅仅需要30分钟Hadoop也非万能,它采用Java实现,Java的IO处理虽然没有性能瓶颈,但是对于CPU密集型的任务是一个麻烦,因此,有些算法效率不会提高很多。2021/9/2653案例3:FacebookWeb ServersScribe MidTierFilersProduction Hive-Hadoop ClusterOracle RACFederated MySQLScribe-Hadoop ClustersAdhoc Hive-Hadoop ClusterHive replication2021/9/265455Facebook数据仓库Hadoop基础平台自动化ETL元数据发现日志查询(HIVE)特殊工作流和扩展报表工具监控和报警2021/9/2655Facebook任务统计每天任务统计10TB 压缩数据新增/天135TB 扫描数据总量/天7500+任务/天80K 计算小时/天95%Hadoop任务使用Hive2021/9/2656Facebook应用报表天/周的展示、点击统计汇总用户参与度计算 战略决策服务Ad hoc分析机器学习(ad方向)2021/9/2657案例4:Taobao2021/9/2658Thanks2021/9/2659

    注意事项

    本文(Hadoop大数据开发与性能调优实战培训课程(2)Hadoop组件详解59.ppt)为本站会员(赵**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开