Thrift не работает на региональных серверах: попытки getMaster завершаются ошибкой с java.net.ConnectException: соединение отклонено

Я пытаюсь запустить Thrift на каждом региональном сервере (для ввода карты, а также для будущей балансировки нагрузки).

Однако запуск серверов Thrift не работает с 12/01/30 15:52:32 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 9 of 10 failed; no more retrying.

Есть маршрут к хосту (ping успешно), мастер hbase работает на порту по умолчанию (и подтверждается, что он присутствует с помощью lsof -i :60000), но я все еще получаю

12/01/30 15:52:32 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 9 of 10 failed; no more retrying.
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
        at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:408)
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328)
        at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:750)
        at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)
        at $Proxy4.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:360)
        at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:94)
        at org.apache.hadoop.hbase.thrift.ThriftServer$HBaseHandler.<init>(ThriftServer.java:194)
        at org.apache.hadoop.hbase.thrift.ThriftServer$HBaseHandler.<init>(ThriftServer.java:188)
        at org.apache.hadoop.hbase.thrift.ThriftServer.doMain(ThriftServer.java:870)
        at org.apache.hadoop.hbase.thrift.ThriftServer.main(ThriftServer.java:927)
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: master:60000
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:396)
        at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:94)
        at org.apache.hadoop.hbase.thrift.ThriftServer$HBaseHandler.<init>(ThriftServer.java:194)
        at org.apache.hadoop.hbase.thrift.ThriftServer$HBaseHandler.<init>(ThriftServer.java:188)
        at org.apache.hadoop.hbase.thrift.ThriftServer.doMain(ThriftServer.java:870)
        at org.apache.hadoop.hbase.thrift.ThriftServer.main(ThriftServer.java:927)

person Tom    schedule 30.01.2012    source источник


Ответы (1)


Может быть, на главном компьютере hbase у вас проблема с брандмауэром или он привязан к неправильному сетевому интерфейсу? Чтобы убедиться, что это не так? Я бы попробовал netcat nc, telnet или что-то подобное с той же машины, на которой вы устанавливаете thrift, и посмотрел, могут ли они подключиться к этому хосту/порту.

person Tom    schedule 31.01.2012
comment
Региональный сервер, работающий на том же узле, на котором я пытаюсь запустить thrift, может без проблем подключиться к hmaster, и я могу пропинговать его, так что подключение есть. - person Tom; 31.01.2012
comment
странный. В крайнем случае я бы начал захват пакетов на компьютере с ThriftServer, а затем запустил ThriftServer (см. wireshark, tshark). Это точно скажет вам, что происходит, чтобы вызвать ошибку «Отказ в соединении». - person Tom; 01.02.2012