Theo Hadoop - The Definitive Guide
Các bản ghi logic mà FileInputFormats xác định thường không nằm gọn trong các khối HDFS. Ví dụ, các bản ghi logic của TextInputFormat là các dòng, sẽ vượt qua ranh giới HDFS thường xuyên hơn không. Điều này không liên quan đến hoạt động của chương trình của bạn — chẳng hạn như các dòng không bị bỏ sót hoặc bị hỏng — nhưng điều đáng biết là nó có nghĩa là bản đồ cục bộ dữ liệu (nghĩa là, bản đồ đang chạy trên cùng một máy chủ lưu trữ dữ liệu đầu vào) sẽ thực hiện một số lần đọc từ xa. Chi phí nhẹ mà nguyên nhân này thường không đáng kể.
Giả sử một dòng bản ghi được chia thành hai khối (b1 và b2). Trình ánh xạ xử lý khối đầu tiên (b1) sẽ nhận thấy rằng dòng cuối cùng không có dấu phân tách EOL và tìm nạp phần còn lại của dòng từ khối dữ liệu tiếp theo (b2).
Làm thế nào để trình ánh xạ xử lý khối thứ hai (b2) xác định rằng bản ghi đầu tiên là không đầy đủ và nên xử lý bắt đầu từ bản ghi thứ hai trong khối (b2)?
LineReader.readLine
hàm, tôi không nghĩ nó có liên quan đến câu hỏi của bạn nhưng có thể thêm các chi tiết khác nếu cần.