Thrift не успява да работи на регионални сървъри: опитите за getMaster са неуспешни с java.net.ConnectException: Връзката е отказана

Опитвам се да накарам Thrift да работи на всеки регионален сървър (за въвеждане на mapreduce, както и за бъдещо балансиране на натоварването).

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

Има маршрут до хоста (пинговете са успешни), hbase master работи на порта по подразбиране (и се потвърждава, че присъства с помощта на 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