Есть 2 машины:
id-test-n03
: hadoop-hbase-master, hadoop-hbase-regionserver, hadoop-hbase-thrift, hadoop-zookeeper-server
id-test-i03
: hadoop-hbase-regionserver
Они оба являются машинами Ubuntu Maverick, установили все пакеты Hadoop (CDH3u3) и HBase с помощью репозитория Cloudera CDH3.
При использовании только id-test-n03
проблем не было. На главной веб-консоли HBase находился 1 сервер региона (http://id -test-n03: 60010 / master-status ), как и ожидалось.
После добавления сервера региона к id-test-i03
я обнаружил дублированные серверы региона (оба имеют одинаковый адрес id-test-i03:60030
) на главной веб-консоли HBase:
![after_adding_rs](https://i.stack.imgur.com/h3zqT.png)
Статус в hbase shell
был:
hbase(main):001:0> status 'detailed'
version 0.90.4-cdh3u3
0 regionsInTransition
3 live servers
id-test-i03:60020 1332390489086
requests=0, regions=0, usedHeap=24, maxHeap=983
id-test-n03.daum.net:60020 1332389557235
requests=0, regions=2, usedHeap=26, maxHeap=983
.META.,,1
stores=1, storefiles=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0
-ROOT-,,0
stores=1, storefiles=2, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0
id-test-i03:60020 1332390489086
requests=0, regions=0, usedHeap=0, maxHeap=0
0 dead servers
Итак, я попытался остановить сервер региона на id-test-i03
, но обнаружил, что только один сервер региона был мертв, а другой еще жив:
![after_stopping_added_rs](https://i.stack.imgur.com/ZtZnI.png)
hbase(main):002:0> status 'detailed'
version 0.90.4-cdh3u3
0 regionsInTransition
2 live servers
id-test-n03.daum.net:60020 1332389557235
requests=0, regions=2, usedHeap=29, maxHeap=983
.META.,,1
stores=1, storefiles=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0
-ROOT-,,0
stores=1, storefiles=2, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0
id-test-i03:60020 1332390489086
requests=0, regions=0, usedHeap=0, maxHeap=0
1 dead servers
id-test-i03.daum.net,60020,1332390489086
Согласно информации на главной веб-консоли, разница между дублированными серверами региона составляет Start Code
и Load
. У одного есть имя хоста, а у другого полное доменное имя в стартовом коде. У одного с именем хоста пустая загрузка.
/etc/hosts/
для id-test-n03
и id-test-i03
:
127.0.0.1 localhost
192.168.1.1 id-test-n03 id-test-n03.daum.net
192.168.1.2 id-test-i03 id-test-i03.daum.net
hbase-site.xml
для обеих машин:
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://id-test-n03:8020/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>id-test-n03</value>
</property>
</configuration>
Спасибо за любой совет.
Проблема решена с помощью следующих шагов.
Сначала удалены полные доменные имена в /etc/hosts
для обеих машин:
127.0.0.1 localhost
192.168.1.1 id-test-n03
192.168.1.2 id-test-i03
Затем, закомментировано search $DOMAIN_NAME
в /etc/resolv.conf
для обеих машин:
#search daum.net
nameserver 10.20.30.40
Наконец, перезапустите все службы Hadoop и HBase на обеих машинах.
При этом серверы Hadoop и HBase больше не используют полное доменное имя, а только общаются с именами хостов.
Добавление и удаление серверов регионов отражаются в веб-консоли основного состояния HBase и в оболочке hbase, как и ожидалось.