我有一个关于FileInputFormat类的isSplitable()的问题。根据定义,此方法将限制在输入拆分上创建多个映射器。但是映射器的数量取决于文件的拆分数量。就像一个160 MB的文件被分成3个部分,比如64、64和32 MB。将有3个地图任务,每个输入拆分一个。如果我用false值覆盖isSplitable(),它将限制什么,无论如何都会有3个映射器根据输入的拆分来处理文件。
如果您不希望拆分数据文件,或者希望使用一个映射器来处理整个文件。这样,一个文件将只由一个映射器处理。在这种情况下,扩展map/reduce inputformat并重写isSplitable()方法并将"false"返回为布尔值将对您有所帮助。
将整个文件作为一个区块进行拆分和读取是两件不同的事情。