Как (в Hadoop) данные помещаются в карту и сокращают функции до правильных типов?

У меня немного затруднительно понять в Hadoop, как данные помещаются в карту и сокращены функции. Я знаю, что мы можем определить формат ввода и формат вывода, а затем типы ключей для ввода и вывода. Но для примера, если мы хотим, чтобы объект был типом ввода, как Hadoop внутренне это делает?

Thanx ...

 bmargulies09 июн. 2012 г., 15:38
Hadoop с открытым исходным кодом. Лучший способ ответить на этот вопрос - прочитать его.

Ответы на вопрос(1)

Решение Вопроса

я создания своих пользовательских форматов. Например, можно отформатировать выходные данные задания MapReduce как JSON. Примерно так:

public class JsonOutputFormat extends TextOutputFormat<Text, IntWritable> {
    @Override
    public RecordWriter<Text, IntWritable> getRecordWriter(
            TaskAttemptContext context) throws IOException, 
                  InterruptedException {
        Configuration conf = context.getConfiguration();
        Path path = getOutputPath(context);
        FileSystem fs = path.getFileSystem(conf);
        FSDataOutputStream out = 
                fs.create(new Path(path,context.getJobName()));
        return new JsonRecordWriter(out);
    }

    private static class JsonRecordWriter extends 
          LineRecordWriter<Text,IntWritable>{
        boolean firstRecord = true;
        @Override
        public synchronized void close(TaskAttemptContext context)
                throws IOException {
            out.writeChar('{');
            super.close(null);
        }

        @Override
        public synchronized void write(Text key, IntWritable value)
                throws IOException {
            if (!firstRecord){
                out.writeChars(",\r\n");
                firstRecord = false;
            }
            out.writeChars("\"" + key.toString() + "\":\""+
                    value.toString()+"\"");
        }

        public JsonRecordWriter(DataOutputStream out) 
                throws IOException{
            super(out);
            out.writeChar('}');
        }
    }
}
 18 авг. 2015 г., 11:04
Какая версия hadoop?
 18 авг. 2015 г., 10:51
@AshishRatan В конфигурации задания hadoop вы должны указать формат вывода как job.setOutputFormatClass (JsonOutputFormat.class);
 29 янв. 2014 г., 07:05
Уважаемый, вы можете сказать мне, как вызвать этот класс, если я получаю результат вывода с помощью Cassandra Mapreduce? я хочу знать, как мне установить мой выходной файл как JsonOutPutFormat ?? какую линию я должен использовать, чтобы использовать его?

Ваш ответ на вопрос