Вот еще один обходной путь, который работает для меня, если вы не хотите изменять /etc/hosts
(поскольку Ubuntu поместила эту запись туда по причине ).
Как объясняет этот пост , основная проблема заключается в том, что к интерфейсу обратной связи привязано несколько IP-адресов, в то время как hbase предполагает, что будет только один. Полученное несоответствие заставляет мастера думать, что у сервера региона есть один IP (127.0.0.1), когда он действительно прослушивает другой (127.0.1.1, IP, связанный с объявленным полным доменным именем хоста).
Удаление записи /etc/hosts
является одним из способов восстановления предположения «один интерфейс - один IP». Замена 127.0.1.1
в /etc/hosts
на «реальный» постоянный IP - это другое. Наконец, еще один способ - создать новый интерфейс: поместите это внизу /etc/network/interfaces
:
# Bind an interface solely for the default host FQDN IP, to fix reverse dns
auto eth0.1
iface eth0.1 inet static
pre-up ip link add eth0.1 name eth0.1 type bridge
address 127.0.1.1
netmask 255.255.255.0
После этого вы сможете sudo ifup eth0.1
и увидеть его в ifconfig
. Перезапустите hbase, и у вас все получится.
Если вы уже используете eth0.1
для выбора другого слота (т.е. eth0.2
), это не должно иметь значения.
РЕДАКТИРОВАТЬ : @ bcolyn Использование lo:0
также работает для меня, и лучше, так как петля всегда будет доступна. В этом случае строка pre-up
также представляется ненужной.