整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

7.2.3. 二进制输入

hadoop 花牛 10℃ 0评论

Hadoop的MapReduce不只是可以处理文本信息,它还可以处理二进制格式 的数据。

2.3.1. 关于SequenceFilelnputFormat 类

Hadoop的顺序文件格式存储二进制的键/值对的序列。由于它们是可分割的(它们有同步点,所以reader可以从文件中的任意一点与记录边界进行同 步,例如分片的起点),所以它们很符合MapReduce数据的格式要求,并且 它们还支持压缩,可以使用一些序列化技术来储任意类型。详情参见 4.5.1 节。

如果要用顺序文件数据作为MapReduce的输入,应用SequenceFilelnputFormat。键和值是由顺序文件决定,所以只需要保证 map输入的类型匹配。例如,如果输入文件中键的格式是IntWritable,值是Text,那么就像第4章生成的那样,mapper的格式应该是Mapper<IntWritable,Text, K, V>,其中KV是这个mapper输出的键和值的类型。

虽然从名称上看不出来,但SequenceFilelnputFormat可以读MapFileSequenceFile。如果在处理顺序文件时遇到目录,SequenceFilelnputFormat类会认为自己正在读MapFile,使用的是其数据文件。因此,如果没有MapFileInputFormat类,也是可以理解的。

2.3.2. 关于sequenceFileAsTextlnputFormat

sequenceFileAsTextlnputFormat 是 sequenceFilelnputFormat的变体,它将顺序文件的键和值转换为Text对象。这个转换通过在键和值上调用toString()方法实现。这个格式使顺序文件作为Streaming的合适的输入类型。

2.3.3. 关于SequenceFileAsBinarylnputFormat类

SequenceFileAsBinaryInputFormatSequenceFileInputFormat的一种变体,它获取顺序文件的键和值作为二进制对象。它们被封装为BytesWritable对象,因而应用程序可以任意地解释这些字节数组。结合使用SequenceFile.ReaderappendRaw()方法或SequenceFileAsBinary OutputFormat,它提供了在MapReduce中可以使用任意二进制数据类型的方法(作为顺序文件打包),然而,插入Hadoop序列化机制通常更简洁(详情 参见4.3.4)

转载请注明:全栈大数据 » 7.2.3. 二进制输入

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址