2015-10-29 9 views
2

Продление на один из вопросов: Hadoop: Connecting to ResourceManager failedHadoop ResourceManager HA Подключение к ResourceManager при /0.0.0.0:8032

Hadoop 2.6.1

У меня есть ResourceManager HA настроен.

Когда я убиваю «локальный» ResourceManager (для проверки кластера), происходит переход на другой ресурс, и ResourceManager на другом сервере становится активным. К сожалению, когда я пытаюсь запустить задание с использованием «local» экземпляра nodemanager, он не «отказывает» запрос активному ResourceManager.

[email protected]:~$ jps 
26738 Jps 
23463 DataNode 
23943 DFSZKFailoverController 
24297 NodeManager 
25690 ResourceManager 
23710 JournalNode 
23310 NameNode 

#kill and start ResourceManager, so the failover occur 
[email protected]:~$ kill -9 25690 
~/hadoop/sbin/yarn-daemon.sh start resourcemanager 

[email protected]:~$ ~/hadoop/bin/yarn rmadmin -getServiceState rm1 
standby 
[email protected]:~$ ~/hadoop/bin/yarn rmadmin -getServiceState rm2 
active 

#run my class: 

14:56:51.476 [main] INFO o.apache.samza.job.yarn.ClientHelper - trying to connect to RM 0.0.0.0:8032 
2015-10-29 14:56:51 RMProxy [INFO] Connecting to ResourceManager at /0.0.0.0:8032 
14:56:51.572 [main] DEBUG o.a.h.s.a.util.KerberosName - Kerberos krb5 configuration not found, setting default realm to empty 
2015-10-29 14:56:51 NativeCodeLoader [WARN] Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
14:56:51.575 [main] DEBUG o.a.hadoop.util.PerformanceAdvisory - Falling back to shell based 
2015-10-29 14:56:52 Client [INFO] Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 
2015-10-29 14:56:53 Client [INFO] Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 

пряжи site.xml

<property> 
    <name>yarn.resourcemanager.ha.enabled</name> 
    <value>true</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.cluster-id</name> 
    <value>clusterstaging</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.ha.rm-ids</name> 
    <value>rm1,rm2,rm3</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.hostname.rm1</name> 
    <value>stg-hadoop106</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.hostname.rm2</name> 
    <value>stg-hadoop107</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.hostname.rm3</name> 
    <value>stg-hadoop108</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.zk-address</name> 
    <value>A:2181,B:2181,C:2181</value> 
</property> 

Я не настраивали

<name>yarn.resourcemanager.hostname</name> 

, так как он должен работать 'как есть' - поправьте меня, если я ошибаюсь :)

Я попробовал

<name>yarn.client.failover-proxy-provider</name> 

но без успеха

Любые идеи? Возможно, я ошибочно ожидаю, что клиент обнаружит активный узел RM?

Знаете ли вы, как переключить узел в активном режиме/режиме ожидания в режиме «автоматического переключения»?

~/hadoop/bin/yarn rmadmin -failover rm1 rm2 
    Exception in thread "main" java.lang.UnsupportedOperationException: RMHAServiceTarget doesn't have a corresponding ZKFC address 

~/hadoop/bin/yarn rmadmin -transitionToActive rm1 rm2 
    Automatic failover is enabled for [email protected] 
    Refusing to manually manage HA state, since it may cause 

ответ

0

Если вы включите HA-RM в автоматическом режиме отказа, вы не сможете активировать функцию stand-by или vice-verse. и вы должны указать параметр yarn.client.failover-proxy-provider, класс, который будет использоваться клиентами для отказа от активного RM. А также сконфигурируйте yarn.resourcemanager.hostname для идентификации RM (например, rm1, rm2).

Если автоматическое аварийное переключение не позволяет, вы можете вызвать с помощью ниже yarn rmadmin -transitionToStandby rm1

Пожалуйста над изменениями и дать ответ с результатом