Пряжа в Aazon EC2 с жужжанием

Я пытаюсь настроить Yarn 2.2.0 с whirr в Amazon EC2. Однако у меня есть некоторые проблемы. Я изменил службы whirr для поддержки пряжи 2.2.0. В результате я могу запускать задания и успешно их запускать. Однако я сталкиваюсь с проблемой отслеживания прогресса в работе.

 mapreduce.Job (Job.java:monitorAndPrintJob(1317)) - Running job: job_1397996350238_0001
2014-04-20 21:57:24,544 INFO  [main] mapred.ClientServiceDelegate (ClientServiceDelegate.java:getProxy(270)) - Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server
java.io.IOException: Job status not available 
    at org.apache.hadoop.mapreduce.Job.updateStatus(Job.java:322)
    at org.apache.hadoop.mapreduce.Job.isComplete(Job.java:599)
    at org.apache.hadoop.mapreduce.Job.monitorAndPrintJob(Job.java:1327)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1289)
    at com.zetaris.hadoop.seek.preprocess.PreProcessorDriver.executeJobs(PreProcessorDriver.java:112)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.executePreProcessJob(JobToJobMatchingDriver.java:143)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.executeJobs(JobToJobMatchingDriver.java:78)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.executeJobs(JobToJobMatchingDriver.java:43)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.main(JobToJobMatchingDriver.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212

Я попробовал Debugginh, проблема в ApplicationMaster. Он имеет имя хоста и порт rpc, в котором имя хоста является внутренним именем хоста, которое может быть разрешено только из сети Amazon. В идеале это должно быть публичное имя Amazon DN. однако я еще не мог установить это. Я пытался установить параметры, такие как

yarn.nodemanager.hostname yarn.nodemanager.address

Но я не смог найти никаких изменений в имени хоста или порте ApplicationMaster, они все еще являются частным внутренним именем хоста amazon. Я что-то упустил? Или я должен изменить /etc/hosts во всех узлах менеджера узлов, чтобы менеджеры узлов начинали с публичного адреса... Но это будет излишним правом. Или есть ли способ настроить ApplicationMaster на использование публичного ip.So что я могу удаленно отслеживать прогресс

Я делаю все это, потому что мне нужно отправлять задания удаленно. Я не хочу ставить под угрозу эту функцию. Кто-нибудь, кто ведет меня

Мне удалось настроить сервер истории, и я смог получить доступ с удаленного клиента. Я использовал конфигурацию, чтобы сделать это.

mapreduce.jobhistory.webapp.address

Когда я отлажен, я нахожу

 MRClientProtocol MRClientProxy = null;
      try {
        MRClientProxy = getProxy();
        return methodOb.invoke(MRClientProxy, args);
      } catch (InvocationTargetException e) {
        // Will not throw out YarnException anymore
        LOG.debug("Failed to contact AM/History for job " + jobId + 
            " retrying..", e.getTargetException());
        // Force reconnection by setting the proxy to null.
        realProxy = null;

Прокси не может подключиться из-за частного адреса. И приведенный выше код взята из ClientServiceDelegate

3 ответа

У меня такая же проблема. Решается добавлением следующих строк в mapred-site.yml, Он перемещает вашу промежуточную директорию из директории tmp по умолчанию в вашу домашнюю директорию, где у вас есть разрешение.

  <property>
    <name>yarn.app.mapreduce.am.staging-dir</name>
    <value>/user</value>
  </property>

В дополнение к этому вам необходимо создать каталог истории в hdfs:

hdfs dfs -mkdir -p /user/history
hdfs dfs -chmod -R 1777 /user/history
hdfs dfs -chown mapred:hadoop /user/history

Я нашел эту ссылку весьма полезной для настройки кластера Hadoop.

Мне удалось избежать проблемы. Вместо того, чтобы решить это. Проблема с разрешением ip вне облачной среды.

Сначала я попытался обновить источник whirr-yarn, чтобы использовать общедоступный ip для конфигураций, а не частный ip. Но все же Там, где проблемы. Так что я бросил задачу.

В конце концов я начал работу над самой облачной средой. а не с хоста вне облачной инфраструктуры. Надеюсь, кто-нибудь нашел лучший способ.

conf.set("mapreduce.jobhistory.address", "hadoop3.hwdomain:10020");
conf.set("mapreduce.jobhistory.intermediate-done-dir", "/mr-history/tmp");
conf.set("mapreduce.jobhistory.done-dir", "/mr-history/done");
Другие вопросы по тегам