Как выглядит ваша среда разработки Hadoop? - PullRequest
2 голосов
/ 26 июня 2010

Хотелось бы узнать, как выглядит ваша среда разработки Hadoop?
Вы развертываете jars для тестирования кластера или запускаете jars в локальном режиме?
Какую IDE вы используете и какие плагины вы используете?
Как развернуть готовые проекты для запуска на серверах? Каковы другие рекомендации по настройке моей собственной среды разработки / тестирования Hadoop?

1 Ответ

7 голосов
/ 11 июля 2010

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

Банки заданий MR распределяются на клиентский компьютер различными способами. Обычно пользовательские процессы развертывания видны здесь. Некоторые люди используют инструменты, такие как Capistrano, или инструменты управления конфигурацией, такие как Chef или Puppet, чтобы автоматизировать это.

Мое личное развитие обычно делается в Eclipse с Maven. Я создаю jar-файлы с помощью подключаемого модуля Maven (упаковывает все зависимости в один jar-файл для более удобного развертывания, за исключением более простых jar-файлов). Я регулярно тестирую, используя MRUnit, а затем псевдораспределенный режим. Местный бегун не очень полезен в моем опыте. Развертывание почти всегда осуществляется через систему управления конфигурацией. Тестирование может быть автоматизировано с помощью CI-сервера, такого как Hudson.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...