Запуск отдельного приложения Hadoop на нескольких ядрах процессора

Моя команда создала приложение Java с использованием библиотек Hadoop для преобразования множества входных файлов в полезный вывод. Учитывая текущую нагрузку, один многоядерный сервер будет работать хорошо в течение следующего года или около того. У нас (пока) нет необходимости использовать многосерверный кластер Hadoop, но мы решили начать этот проект «в стадии подготовки».

Когда я запускаю это приложение в командной строке (или в Eclipse или NetBeans), я еще не смог убедить его использовать более одной карты и / или уменьшить поток за раз. Учитывая тот факт, что инструмент очень сильно загружает процессор, эта «однопотоковость» является моим текущим узким местом.

Когда я запускаю его в профилировщике netbeans, я вижу, что приложение запускает несколько потоков для разных целей, но одновременно запускается только одна карта / редукция.

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

Что я должен сделать, чтобы хотя бы 2 или даже 4 активных потока работали (что должно быть возможно в течение большей части времени обработки этого приложения)?

Я ожидаю, что это будет что-то очень глупое, что я упустил из виду.

Я только что нашел это:https://issues.apache.org/jira/browse/MAPREDUCE-1367 Это реализует функцию, которую я искал в Hadoop 0.21. Он вводит флаг mapreduce.local.map.tasks.maximum для управления им.

На данный момент я также нашел решение, описанноевот в этом вопросе.

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

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