- 1、本文档共79页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mapreduce学习报告讲述
各种InputFormat TextInputFormat,默认的格式,每一行是一个单独的记录,并且作为value,文件的偏移值作为key KeyValueInputFormat,这个格式每一行也是一个单独的记录,但是Key和Value用Tab隔开,是默认的OutputFormat,可以作为中间结果,作为下一步MapReduce的输入。 SequenceFileInputFormat 基于块进行压缩的格式 对于几种类型数据的序列化和反序列化操作 用来将数据快速读取到Mapper类中 Writable接口 Hadoop使用Writable做序列化 定义了两个方法 二进制写入DataOutput流 二进制读取DataInput流 Hadoop自带一系列Writable实现,可以满足绝大多数需要 可以自定义Writable,控制二进制表示和排序 实现Writable接口的例子 public?class?MyWritable?implements?Writable?{????? ????//?Some?data?????????? ????private?int?counter;????? ????private?long?timestamp;????? ???? ????public?void?write(DataOutput?out)?throws?IOException?{????? ????????out.writeInt(counter);????? ????????out.writeLong(timestamp);????? ????}????? ???????? ????public?void?readFields(DataInput?in)?throws?IOException?{????? ????????counter?=?in.readInt();????? ????????timestamp?=?in.readLong();????? ????}????? ???? ????public?static?MyWritable?read(DataInput?in)?throws?IOException?{????? ????????MyWritable?w?=?new?MyWritable();????? ????????w.readFields(in);????? ????????return?w;????? ????}????? }??? Writable的Java基本封装 Mapper 每一个Mapper类的实例生成了一个Java进程(在某一个InputSplit上执行) 有两个额外的参数OutputCollector以及Reporter,前者用来收集中间结果,后者用来获得环境参数以及设置当前执行的状态。 现在用Mapper.Context提供给每一个Mapper函数,用来提供上面两个对象的功能 数据压缩 PartitionShuffle 在Map工作完成之后,每一个 Map函数会将结果传到对应的Reducer所在的节点,此时,用户可以提供一个Partitioner类,用来决定一个给定的(key,value)对传输的具体位置 Combiner conf.setCombinerClass(Reduce.class); 是在本地执行的一个Reducer,满足一定的条件才能够执行。 Sort 传输到每一个节点上的所有的Reduce函数接收到得Key,value对会被Hadoop自动排序(即Map生成的结果传送到某一个节点的时候,会被自动排序) Reduce 做用户定义的Reduce操作 接收到一个OutputCollector的类作为输出 OutputFormat 写入到HDFS的所有OutputFormat都继承自FileOutputFormat 每一个Reducer都写一个文件到一个共同的输出目录,文件名是part-nnnnn,其中nnnnn是与每一个reducer相关的一个号(partition id) JobConf.setOutputFormat() RecordWriter 用来指导如何输出一个记录到文件中 Output Format OutputFormat: Description TextOutputFormat Default; writes lines in key \t value form SequenceFileOutputFormat Writes binary files suitable for reading into subsequent MapReduce jobs NullOutputFormat Disregards its inputs 容错 由Hadoop系
文档评论(0)