Hadoop流程记录如何跨块边界分割?
根据 Hadoop - The Definitive Guide
FileInputFormats定义的逻辑记录通常不适合HDFS块。例如,TextInputFormat的逻辑记录是行,它们将经常跨越HDFS边界。这与你的程序的功能没有关系 - 例如,线路不会丢失或损坏 - 但它值得了解,因为它确实意味着数据本地映射(即,与它们在同一主机上运行的映射)输入数据)将执行一些远程读取。这导致的轻微开销通常不显着。
假设记录行分为两个块(b1和b2)。处理第一个块(b1)的映射器将注意到最后一行没有EOL分隔符,并从下一个数据块中取出剩余的行(b2)。
映射器如何处理第二个块(b2)如何确定第一个记录是不完整的并且应该从块(b2)中的第二个记录开始处理?
斯蒂芬大帝