Как создавать и читать каталоги в Hadoop - рабочий каталог Mapreduce Job - PullRequest
1 голос
/ 01 августа 2011

Я хочу создать каталог внутри рабочего каталога задания MapReduce в Hadoop.

Например, используя: File setupFolder = new File (setupFolderName);setupFolder.mkdirs ();

в моем классе mapper, чтобы записать в него несколько промежуточных файлов.Это правильный способ сделать это?

Кроме того, после завершения работы, как я снова получу доступ к этому каталогу, если захочу?

Пожалуйста, совет.

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

Если вы используете java, вы можете переопределить метод setup и открыть там обработчик файлов (и закрыть его в cleanup). Эта ручка будет доступна для всех картографов.

Я предполагаю, что вы пишете здесь не весь вывод карты, а некоторую отладку / статистику. С помощью этого обработчика вы можете читать и писать так, как показано в этом примере (http://wiki.apache.org/hadoop/HadoopDfsReadWriteExample)

если вы хотите прочитать весь каталог, посмотрите этот пример https://sites.google.com/site/hadoopandhive/home/how-to-read-all-files-in-a-directory-in-hdfs-using-hadoop-filesystem-api

помните, что вы не сможете зависеть от порядка данных, записанных в файлы.

2 голосов
/ 18 июля 2015

Вы можете переопределить setupReduce () в классе редуктора, использовать mkdirs () для создания папки и использовать create () для создания файла для outputtream.

@Override
    protected void setupReduce(Context context) throws IOException {
        Configuration conf = context.getConfiguration();
        FileSystem fs = FileSystem.get(conf);
        fs.mkdirs(new Path("your_path_here"));
    }
...