Могу ли я вызывать Hadoop API из моей веб-службы Axis2? - PullRequest
0 голосов
/ 27 февраля 2011

Я намерен разработать веб-сервис, который может взаимодействовать с главным узлом Hadoop и выполнять некоторые задачи.Эти задачи включают в себя: 1. Запуск и остановку кластера hadoop 2. Добавление и удаление подчиненных узлов из кластера hadoop 3. Вызов некоторых API, таких как метрики, из веб-службы.

Я не ожидаю, что вы, ребята, расскажете мне все (пожалуйста, не надо!), Но просто скажите, как я могу вызвать API Hadoop из моего веб-сервиса.Достаточно ли включить банки Hadoop в classpath?Я думаю, мне тоже понадобится некоторая конфигурация.Пожалуйста, помогите мне настроить простой поток вызовов между веб-службой и кластером Hadoop.

1 Ответ

1 голос
/ 27 февраля 2011

Поскольку запуск и остановка являются сценариями оболочки, вы не сможете перезапустить кластер из Jar-файла Hadoop.

Итак, краткий список того, что вы должны сделать для своих задач:

  1. Запуск и остановка - это сценарии оболочки, вам нужно перейти к Runtime.getRuntime (). Exec ("ВАШSHELL SCRIPT ") и пусть сценарий оболочки запускается и останавливает кластер.
  2. Добавление и удаление узлов довольно необычно, потому что Hadoop будет управлять им сам.Для вывода из эксплуатации вы должны отредактировать файл исключения и обновить узлы.Это не будет задачей, которой вообще может управлять API Hadoop.Здесь вы можете прочитать далее: Я хочу уменьшить размер большого кластера, одновременно удаляя несколько узлов.Как это можно сделать?
    Однако вы можете обновить узлы с помощью класса DFSAdmin.Сам файл должен быть отредактирован на хосте.Смотрите следующий пункт, как это настроить.
  3. Это именно то, о чем вы говорите, вы можете просто поставить банку и просто назвать то, что вам нужно.НО вам нужно настроить объект Configuration, содержащий свойства fs.default.name и mapred.job.tracker.Значениями этих свойств являются имена хостов namenode и jobtracker.Вы найдете это в своем конфиге xmls 'на мастере.Затем вы можете передать этот объект, например, FileSystem.get(YOURCONFIGURATION) и работать с API.

Надеюсь, это не слишком много текста :) Удачи!

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