ให้เป็นไปตาม Hadoop - The Definitive Guide
บันทึกตรรกะที่ FileInputFormats กำหนดมักจะไม่พอดีกับบล็อก HDFS อย่างเรียบร้อย ตัวอย่างเช่นระเบียนตรรกะของ TextInputFormat คือเส้นซึ่งจะข้ามขอบเขต HDFS บ่อยกว่าไม่ สิ่งนี้ไม่มีผลต่อการทำงานของโปรแกรมของคุณเช่นเส้นไม่พลาดหรือขาด แต่ก็คุ้มค่าที่จะรู้เพราะมันหมายความว่า data-local maps (นั่นคือแผนที่ที่ทำงานบนโฮสต์เดียวกันกับ ข้อมูลอินพุต) จะทำการอ่านระยะไกลบางส่วน ค่าใช้จ่ายเล็กน้อยสาเหตุนี้ไม่สำคัญตามปกติ
สมมติว่าเส้นบันทึกแบ่งเป็นสองช่วงตึก (b1 และ b2) ผู้ทำแผนที่ประมวลผลบล็อกแรก (b1) จะสังเกตว่าบรรทัดสุดท้ายไม่มีตัวคั่น EOL และดึงข้อมูลที่เหลือของบรรทัดจากบล็อกข้อมูลถัดไป (b2)
ผู้ทำแผนที่ประมวลผลบล็อกที่สอง (b2) ได้อย่างไรว่าเร็กคอร์ดแรกไม่สมบูรณ์และควรดำเนินการโดยเริ่มจากเร็กคอร์ดที่สองในบล็อก (b2)
LineReader.readLine
ฟังก์ชันนี้ฉันไม่คิดว่ามันเกี่ยวข้องกับคำถามของคุณ แต่สามารถเพิ่มรายละเอียดเพิ่มเติมได้หากจำเป็น