Очень часто люди, пишущие задания по Java-MR, пишут в таких средах, как Eclipse или IJ. Некоторые даже используют плагины, такие как инструменты разработчика Karamasphere, которые удобны. Что касается тестирования, нормальный процесс состоит в модульном тестировании бизнес-логики, как обычно. Вы можете выполнить модульное тестирование некоторой инфраструктуры MR, используя классы MRUnit (см. Вклад Hadoop). Следующим шагом, как правило, является тестирование в локальном исполнителе заданий, но обратите внимание на ряд предостережений: распределенный кеш не работает в локальном режиме, и вы однопоточны (поэтому статические переменные доступны так, как они не могут быть в производстве). Следующим шагом (и наиболее распространенной тестовой средой) является псевдораспределенный режим - все демоны работают, но в одном окне. Это приведет к запуску кода в разных JVM с несколькими параллельными задачами и выявит большинство ошибок разработчика.
Банки заданий MR распределяются на клиентский компьютер различными способами. Обычно пользовательские процессы развертывания видны здесь. Некоторые люди используют инструменты, такие как Capistrano, или инструменты управления конфигурацией, такие как Chef или Puppet, чтобы автоматизировать это.
Мое личное развитие обычно делается в Eclipse с Maven. Я создаю jar-файлы с помощью подключаемого модуля Maven (упаковывает все зависимости в один jar-файл для более удобного развертывания, за исключением более простых jar-файлов). Я регулярно тестирую, используя MRUnit, а затем псевдораспределенный режим. Местный бегун не очень полезен в моем опыте. Развертывание почти всегда осуществляется через систему управления конфигурацией. Тестирование может быть автоматизировано с помощью CI-сервера, такого как Hudson.
Надеюсь, это поможет.