北京理工大学计算机学院樊博PPT课件_第1页
北京理工大学计算机学院樊博PPT课件_第2页
北京理工大学计算机学院樊博PPT课件_第3页
北京理工大学计算机学院樊博PPT课件_第4页
北京理工大学计算机学院樊博PPT课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京理工大学计算机学院樊博 Hadoop简介 2 Hadoop概述HDFS简介Map Reduce简介Hadoop应用实例 提纲 3 Hadoop是一个分布式系统基础架构 由Apache基金会开发 用户可以在不了解分布式底层细节的情况下 开发分布式程序 充分利用集群的威力来实现高速运算和存储 在Hadoop中实现了Google的GFS和Map Reduce算法 使Hadoop成为了一个分布式的计算平台 需要注意的是 Hadoop并不仅仅是一个用于存储的分布式文件系统 而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架 Hadoop概述 4 作为系统的底层 Hadoop实现了一个分布式文件系统 HadoopDistributedFileSystem 简称HDFS HDFS有着高容错性的特点 并且设计用来部署在低廉的 low cost 硬件上 而且它提供高传输率 highthroughput 来访问应用程序的数据 适合那些有着超大数据集 largedataset 的应用程序 HDFS放宽了POSIX的要求 这样可以流的形式访问 streamingaccess 文件系统中的数据 Hadoop概述 5 HadoopDistributedFileSystem Hadoop分布式文件系统 是一个master slave的结构 就通常的部署来说 在master上只运行一个Namenode 而在每一个slave上运行一个Datanode HDFS简介 6 HDFS简介 7 在上图中 Namenode Datanode Client之间的通信都是建立在TCP IP的基础之上的 当Client要执行一个写入的操作的时候 命令不是马上就发送到Namenode Client首先在本机上临时文件夹中缓存这些数据 当临时文件夹中的数据块达到了设定的Block的值 默认是64M 时 Client便会通知Namenode Namenode便响应Client的RPC请求 将文件名插入文件系统层次中并且在Datanode中找到一块存放该数据的block 同时将该Datanode及对应的数据块信息告诉Client Client便这些本地临时文件夹中的数据块写入指定的数据节点 针对于大文件 HDFS简介 8 HDFS采取了副本策略 其目的是为了提高系统的可靠性 可用性 HDFS的副本放置策略是三个副本 一个放在本节点上 一个放在同一机架中的另一个节点上 还有一个副本放在另一个不同的机架中的一个节点上 还有一点很重要的是 HDFS支持传统的层次文件组织结构 同现有的一些文件系统在操作上很类似 比如你可以创建和删除一个文件 把一个文件从一个目录移到另一个目录 重命名等等操作 Namenode管理着整个分布式文件系统 对文件系统的操作 如建立 删除文件和文件夹 都是通过Namenode来控制 HDFS简介 9 可见 HDFS针对性很强 其主要目的是支持以流的形式访问写入的大型文件 如果客户机想将文件写到HDFS上 首先需要将该文件缓存到本地的临时存储 如果缓存的数据大于所需的HDFS块大小 创建文件的请求将发送给Namenode Namenode将以Datanode标识和目标块响应客户机 同时也通知将要保存文件块副本的Datanode 当客户机开始将临时文件发送给第一个Datanode时 将立即通过管道方式将块内容转发给副本Datanode 客户机也负责创建保存在相同HDFS名称空间中的校验和 checksum 文件 在最后的文件块发送之后 Namenode将文件创建提交到它的持久化元数据存储 在EditLog和FsImage文件 HDFS简介 10 2 单线程hadoop的文件存入Configurationconf newConfiguration FileSystemfs FileSystem get conf Pathsrc newPath F pic 2003 zhujiajian Pathdst newPath user zxf image longstart System currentTimeMillis fs copyFromLocalFile src dst longend System currentTimeMillis System out println timecost end start 108037206bytes 303fileswritefromlocalwindowstoremotehdfs cost26531or32407milliseconds HDFS简介 11 Map Reduce是Google的一项重要技术 它是一个编程模型 用以进行大数据量的计算 对于大数据量的计算 通常采用的处理手法就是并行计算 至少现阶段而言 对许多开发人员来说 并行计算还是一个比较遥远的东西 Map Reduce就是一种简化并行计算的编程模型 它让那些没有多少并行计算经验的开发人员也可以开发并行应用 Map Reduce简介 12 最简单的Map Reduce应用程序至少包含3个部分 一个Map函数 一个Reduce函数和一个main函数 main函数将作业控制和文件输入 输出结合起来 在这点上 Hadoop提供了大量的接口和抽象类 从而为Hadoop应用程序开发人员提供许多工具 可用于调试和性能度量等 Map Reduce本身就是用于并行处理大数据集的软件框架 Map Reduce的根源是函数性编程中的map和reduce函数 它由两个可能包含有许多实例 许多Map和Reduce 的操作组成 Map函数接受一组数据并将其转换为一个键 值对列表 输入域中的每个元素对应一个键 值对 Reduce函数接受Map函数生成的列表 然后根据它们的键 为每个键生成一个键 值对 缩小键 值对列表 Map Reduce简介 13 这里提供一个示例 假设输入域是onesmallstepforman onegiantleapformankind 在这个域上运行Map函数将得出以下的键 值对列表 one 1 small 1 step 1 for 1 man 1 one 1 giant 1 leap 1 for 1 mankind 1 如果对这个键 值对列表应用Reduce函数 将得到以下一组键 值对 one 2 small 1 step 1 for 2 man 1 giant 1 leap 1 mankind 1 但是 现在假设有两个输入域 第一个是onesmallstepforman 第二个是onegiantleapformankind 您可以在每个域上执行Map函数和Reduce函数 然后将这两个键 值对列表应用到另一个Reduce函数 这时得到与前面一样的结果 这便是Map Reduce的威力 它的并行功能可在任意数量的系统上使用 Map Reduce简介 14 Map Reduce简介 15 WordCount javaimportjava io IOException importjava util StringTokenizer importorg apache hadoop conf Configuration importorg apache hadoop fs Path importorg apache hadoop io IntWritable importorg apache hadoop io Text importorg apache hadoop mapreduce Job importorg apache hadoop mapreduce Mapper importorg apache hadoop mapreduce Reducer importorg apache hadoop mapreduce lib input FileInputFormat importorg apache hadoop mapreduce lib output FileOutputFormat importorg apache hadoop util GenericOptionsParser Hadoop应用实例 16 publicclassWordCount publicstaticclassTokenizerMapperextendsMapper privatefinalstaticIntWritableone newIntWritable 1 privateTextword newText publicvoidmap Objectkey Textvalue Contextcontext throwsIOException InterruptedException StringTokenizeritr newStringTokenizer value toString while itr hasMoreTokens word set itr nextToken context write word one Hadoop应用实例 17 publicstaticclassIntSumReducerextendsReducer privateIntWritableresult newIntWritable publicvoidreduce Textkey Iterablevalues Contextcontext throwsIOException InterruptedException intsum 0 for IntWritableval values sum val get result set sum context write key result Hadoop应用实例 18 publicstaticvoidmain String args throwsException Configurationconf newConfiguration String otherArgs newGenericOptionsParser conf args getRemainingArgs if otherArgs length 2 System err println Usage wordcount System exit 2 Jobjob newJob conf wordcount job setJarByClass WordCount class job setMapperClass TokenizerMapper class job setCombinerClass IntSumReducer class job setReducerClass IntSumReducer class j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论