You are here

Bagaimana agar map dari sebuah job dapat memproses sebuah input file dengan lengkap tanpa dipecah (split-up) oleh framework?

Pada dasarnya sebuah job input diwakili oleh InputFormat(interface)/FileInputFormat(base class). Untuk memenuhi hal ini perlu digunakan FileInputFormat yang 'non-splittable', yaitu input format yang memberitahukan kepada framework mapreduce bahwa input tersebut tidak dapat di-split atau dipecah. Caranya adalah dengan mengembalikan nilai false untuk pemanggilan method isSplittable.

Contoh:
org.apache.hadoop.mapred.SortValidator.RecordStatsChecker.NonSplitableSequenceFileInputFormat di src/test/org/apache/hadoop/mapred/SortValidator.java

Selain mengimplementasikan interface InputFormat interface dan membuat isSplitable(...) mengembalikan nilai false, perlu pula mengimplementasikan interface RecordReader agar mengembalikan isi input file secara keseluruhan (defaultnya adalah LineRecordReader, yang memecah file menjadi baris-baris).
Pilihan lain yang cepat adalah dengan setting mapred.min.split.size dengan nilai yang cukup besar.