Я новичок в Hadoop и застрял в следующей проблеме. Я пытаюсь сопоставить осколок базы данных (пожалуйста, не спрашивайте, зачем мне это нужно и т. Д.) С картографом, затем выполните определенную операцию с этими данными, выведите результаты в редукторы и снова используйте эти выходные данные. выполнить вторую фазу карты / сократить работу с теми же данными, используя тот же формат шарда.
Hadoop не предоставляет какой-либо метод ввода для отправки фрагмента базы данных. Вы можете отправлять построчно только с помощью LineInputFormat и LineRecordReader. NLineInputFormat также не помогает в этом случае. Мне нужно расширить классы FileInputFormat и RecordReader, чтобы написать свой собственный InputFormat. Мне посоветовали использовать LineRecordReader, поскольку базовый код уже имеет дело с FileSplits и всеми проблемами, связанными с разбиением файлов.
Все, что мне нужно сделать сейчас, это переопределить метод nextKeyValue (), который я точно не знаю, как.
for(int i=0;i<shard_size;i++){
if(lineRecordReader.nextKeyValue()){ lineValue.append(lineRecordReader.getCurrentValue().getBytes(),0,lineRecordReader.getCurrentValue().getLength());
}
Приведенный выше фрагмент кода написан, но почему-то не работает. Заранее спасибо