的类型与格式ppt课件_第1页
的类型与格式ppt课件_第2页
的类型与格式ppt课件_第3页
的类型与格式ppt课件_第4页
的类型与格式ppt课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、MapReduce的类型与格式夏瑞仙Page 2n MapReduce数据处置模型非常简单:map和reduce函数的输入和输出是键/值对key/value pair。n 本章深化讨论MapReduce模型,重点引见各种类型的数据从简单文本到构造化的二进制对象如何在MapReduce中运用引言Page 3目录n MapReduce的类型n 默许的MapReduce作业n 输入格式n 输入分片与记录n 文本输入n 二进制输入n 多种输入n 数据库输入和输出n 输出格式n 文本输出n 二进制输出n 多个输出n 延迟输出n 数据库输出Page 4MapReduce的类型n map:K1,V1 lis

2、tK2,V2n reduce:K2,listV2 listK3,V3n 普通来说,map函数输入的键/值的类型K1和V1不同于输出类型K2和V2n reduce函数的输入类型必需与map函数的输出类型一样,但reduce函数的输出类型可以不同于输入类型Page 5MapReduce的类型n map:K1,V1 listK2,V2n combine:K2,listV2 listK2,V2n reduce:K2,listV2 listK3,V3n combine函数与reduce函数通常是一样的,在这种情况下,K3与K2类型一样,V3与V2类型一样Page 6MapReduce的类型n parti

3、tion:K2,V2 integern partition函数将中间的键/值对K2和V2进展处置,并且前往一个分区索引。实践上分区单独由键决议Page 7MapReduce的类型n 为什么不能结合mapper和reducer导出类型呢?Page 8 默许的MapReduce作业n 默许的输入格式是TextInputFormat,它产生的键类型是LongWritable,值类型是Text文本行n 默许的mapper是IdentityMapper,它将输入的键和值原封不动地写到输出中n IdentityMapper是一个泛型类型,它可以接受任何键或值的类型,只需map输入和输出键的类型一样,值的类

4、型也一样就可以Page 9 默许的MapReduce作业n 默许的partitioner是HashPartitioner,它对每条记录的键进展哈希操作以决议该记录应该属于哪个分区。每个分区对应一个reducer义务n n 键的哈希码被转换为一个非负整数,它由哈希值与最大的整型值做一次按位与操作而获得,然后用分区数进展取模操作,来决议该记录属于哪个分区索引n Page 10 默许的MapReduce作业n 默许的reducer是IdentityReducer,它也是一个泛型类型,它简单的将一切的输入写到输出中n n 大多数MapReduce程序不会不时用一样的键或值类型,所以就想上一节中描画的那

5、样,必需配置作业来声明运用的类型n Page 11 默许的Streaming作业n 必需提供一个mappern 由于默许的输入格式TextInputFormat产生的键类型是LongWritable,值类型是Text,而Streaming的输出键和值包括map的键和值都是Text类型。默许的IdentityMapper无法将LongWritable类型的键转换为Text类型的键Page 12Streaming中的键和值nStreaming运用可以决议分隔符,该分隔符用于经过规范输入把键/值对转换为一串比特值发送到map或reduce函数。n分隔符默许情况下是Tab制表符,但假设键或值本身含有T

6、ab,它能将分隔符修正成其他符号n输出键/值对时,也需求用一个可配置的分隔符来进展分割Page 13Streaming中的键和值Page 14输入格式Page 15输入格式输入分片与记录输入分片与记录一个输入分片一个输入分片split就是由单个就是由单个map处置的输入块处置的输入块每条记录就是一个键每条记录就是一个键/值对值对在数据库的场景中,一个输入分片对应于一个表上的假设在数据库的场景中,一个输入分片对应于一个表上的假设干行,而一条记录对应到一行干行,而一条记录对应到一行DBInputFormat正是这么正是这么做的,它这种输入格式用于从关系数据库读取数据。做的,它这种输入格式用于从关系

7、数据库读取数据。Page 16输入格式输入分片与记录输入分片与记录输入分片输入分片split在在Java中被表示为中被表示为InputSplit接口接口InputSplit包含一个以字节为单位的长度和一组存储位置包含一个以字节为单位的长度和一组存储位置即一组主机名即一组主机名Page 17输入格式输入分片与记录输入分片与记录InputSplit是由是由InputForamt创建的。创建的。InputForamt担任产担任产生输入分片并将它们分割成记录。生输入分片并将它们分割成记录。Page 18输入格式n FileInputFormat类n FileInputFormat是一切运用文件作为其数

8、据源的InputFormat实现的基类n 提供了两个功能:一个定义哪些文件包含在一个作业的输入中,一个为输入文件生成分片的实现。Page 19输入格式FileInputFormat类的输入途径Page 20输入格式FileInputFormat类的输入途径add和set方法允许指定包含的文件。假设需求排除特定文件,可以运用setInputPathFilter方法设置一个过滤器即使不设置过滤器,也会运用一个默许的过滤器来排除隐藏文件称号中以.和_开头的文件Page 21输入格式FileInputFormat类的输入分片最小的输入分片大小通常是1字节最大的分片大小默以为Java long类型表示的

9、最大值Page 22输入格式FileInputFormat类的输入分片假设需添加map数,可以把mapred.min.split.size调小,把mapred.max.split.size调大假设需减少map数, 可以把mapred.min.split.size调大,并把mapred.max.split.size调小Page 23输入格式FileInputFormat类的输入分片Page 24输入格式小文件与CombineFileInputFormatFileInputFormat会让每个输入文件至少产生一个map义务, 因此假设他的输入目录下有许多文件, 而每个文件都很小, 例如几十kb,

10、那么每个文件都产生一个map会添加调度开销. 作业变慢.那么如何防止这种问题呢? CombineFileInputFormat能有效的减少map数量.CombineFileInputFormat是针对小文件而设计的笼统类Page 25输入格式防止切分有些运用程序能够不希望文件被切分,而是用一个mapper完益处置每一个输入文件。Page 26输入格式把整个文件作为一条记录来处置Page 27输入格式将假设干个小文件打包成顺序文件的MapReduce程序Page 28输入格式TextInputFormat默许的InputFormat,键是LongWritable类型,存储该行在整个文件中的字节偏

11、移量,值是Text类型,是这行的内容,不包括任何终止符换行符和回车符Page 29输入格式KeyValueTextInputFormatPage 30输入格式NLineInputFormatPage 31输入格式XML大多数XML解析器会处置整个XML文档,所以假设一个大型XML文档由多个输入分片组成,那么单独处置每个分片就有挑战了把整个文件作为一条记录来处置StreamXmlRecordReader类Page 32输入格式二进制输入SequenceFileInputFormat Hadoop的顺序文件格式存储二进制的键/值对的序列SequenceFileAsTextInputFormatSe

12、quenceFileAsBinaryInputFormat 变体 二进制对象 SequenceFile.Reader的appendRaw方法Page 33输入格式多种输入数据格式往往会随着时间演化对不同的数据集进展衔接join,也称“联接操作MultipleInputs 允许为每条输入途径指定InputFormat和MapperPage 34输入格式数据库输入和输出DBInputFormat用于运用JDBC从关系数据库中读取数据最好用于加载小量的数据集,假设需求与来自HDFS的大数据集衔接,要运用MultipleInputs DBOutputFormat适用于将作业输出数据中等规模的数据转储到

13、数据库Page 35输出格式 文本输出默许的输出格式是TextOutputFormat键和值可以是恣意类型,由于TextOutputFormat调用toString方法把它们转换为字符串每个键和值由制表符进展分割与TextOutputFormat对应的输入格式是KeyValueTextInputFormatNullWritablePage 36输出格式 二进制输出SequenceFileOutputFormatSequenceFileAsBinaryOutputFormatMapFileOutputFormatPage 37输出格式 多个输出Page 38输出格式 多个输出MultipleOutputFormat可以将数据写到多个文件,这些文件的称号源于输出的键和值笼统类,两个实体子类:Mul

温馨提示

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

评论

0/150

提交评论