Hadoop ApachePig本机处理bz2文件?

Hadoop ApachePig本机处理bz2文件?,hadoop,mapreduce,apache-pig,Hadoop,Mapreduce,Apache Pig,我可以看到pig可以读取本机的.bz2文件,但我不确定它是否运行一个显式作业来将bz2拆分为多个InputSplit?有人能证实这一点吗?如果pig正在运行一个创建输入拆分的作业,有没有办法避免这种情况?我的意思是让MapReduce框架在框架级别将bz2文件分割成多个输入片段的方法 hadoop(或pig,它只是为您运行MR作业)中没有实现可拆分的输入格式,因此一个文件由一个作业拆分,然后由第二个作业处理拆分 输入格式定义了一个isSplittable方法,该方法主要定义文件格式是否可以拆分。

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

hadoop(或pig,它只是为您运行MR作业)中没有实现可拆分的输入格式,因此一个文件由一个作业拆分,然后由第二个作业处理拆分

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


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

问题是pig是否运行作业来预先分割文件,然后在分割文件上运行作业?是的。谢谢你的澄清。我想这可能取决于底层的Hadoop?