Я запускаю Hadoop 0.20.1 под SLES 10 (SUSE).Где Карта должна помещать временные файлы при работе под Hadoop
Задача «Моя карта» принимает файл и генерирует еще несколько, я затем генерирую результаты из этих файлов. Я хотел бы знать, где я должен размещать эти файлы, чтобы производительность была хорошей и конфликтов не было. Если Hadoop может удалить каталог автоматически - это было бы хорошо.
Прямо сейчас, я использую временную папку и идентификатор задачи, чтобы создать уникальную папку, а затем работать в подпапках этой папки.
reduceTaskId = job.get("mapred.task.id");
reduceTempDir = job.get("mapred.temp.dir");
String myTemporaryFoldername = reduceTempDir+File.separator+reduceTaskId+ File.separator;
File diseaseParent = new File(myTemporaryFoldername+File.separator +REDUCE_WORK_FOLDER);
Проблема такого подхода заключается в том, что я не уверен, что это является оптимальным, и я должен удалить каждую новую папку или я начинаю бежать из космоса. Благодаря akintayo
(редактировать) я обнаружил, что лучшее место для хранения файлов, которые вы не хотите за пределами жизни карты будут job.get («job.local.dir»), который обеспечивает путь, который будет удален при завершении задач карты. Я не уверен, что удаление выполняется на основе ключа или для каждого tasktracker.
Я понимаю, что DistributedCache используется только для файлов только для чтения, или, скорее, для файлов, которые одинаковы во всех узлах по заданному например, файл конфигурации или банку. Моя проблема заключается в том, что я генерирую файлы во время обработки, которые я могу или не могу сохранить, например, если я беру jpg и сжимаю его. Где бы я поместил эти файлы, когда я я работаю над ними. Спасибо – akintayo
Как вы загружаете файлы в HDFS или у вас есть они уже на S3 или уже в HDFS? Вы можете использовать mapper для потоковой передачи файла (так что файл, который вы хотите вытащить извне HDFS будет во входном файле, вы можете прочитать строку) и выписать t он сжимал версию до HDFS в картографе или записывал из задания в другой магазин (например, Cassandra или MongoDB), и вообще нет HDFS. Что вы делаете с файлами после их сжатия? Речь идет только о хранении файлов в HDFS для резервного копирования и резервирования и сжатия для экономии места? –
Файлы содержатся в моем файле входных последовательностей, я воссоздаю его, затем обрабатывая его поэтапно. После завершения обработки я копирую результат в файл выходной последовательности. Я должен использовать этот рабочий процесс, я пытаюсь выяснить, где я могу разместить файлы, чтобы они были доступны для задач, без замедления производительности. Спасибо – akintayo