首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache本机处理bz2文件?

Apache本机处理bz2文件?
EN

Stack Overflow用户
提问于 2013-08-12 18:43:11
回答 1查看 1K关注 0票数 2

我可以看到猪可以本机读取.bz2文件,但我不确定它是否运行一个显式作业将bz2拆分成多个inputsplits?有人能证实这一点吗?如果猪在运行一个作业来创建输入分裂,那么有什么方法可以避免这种情况呢?我的意思是让MapReduce框架在框架级别将bz2文件拆分为多个输入缝的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-13 00:11:28

可拆分的输入格式不是在hadoop中实现的(或者在pig中,它只为您运行MR jobs ),这样一个文件被一个作业分割,然后由另一个作业处理。

输入格式定义了一个isSplittable方法,该方法主要定义文件格式是否可以拆分。此外,大多数基于文本的格式将检查文件是否使用已知的压缩编解码器(例如: gzip、bzip2),以及编解码器是否支持拆分(原则上gzip不支持,但bz2支持)。

如果输入格式/编解码器确实允许拆分文件,则在压缩文件中的定义(和可配置)点(例如每64 MB)定义拆分。当创建映射任务以处理每个拆分时,然后获取输入格式来为文件创建一个记录读取器,传递读取器应该从哪里开始的拆分信息(64 to块偏移量)。然后,读者被告知寻求到该分裂的偏移点。此时,底层编解码器将寻求到压缩文件中的那个点,并向前扫描直到它找到下一个压缩块头(在bz2的情况下)。然后,在从编解码器返回的未压缩流上继续正常读取,直到分割结束点在未压缩流中被传递。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18194339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档