记三个Hbase连接的问题
尝试run一个hbase批量插入的程序时报出以下错误:
1、
2018-04-13 15:51:28 [ main-SendThread(10.10.30.63:2181):50496 ] - [ DEBUG ] Got ping response for sessionid: 0x162bdfcb5ec0007 after 3ms
2018-04-13 15:51:28 [ main-SendThread(10.10.30.63:2181):50498 ] - [ DEBUG ] Reading reply sessionid:0x162bdfcb5ec0007, packet:: clientPath:null serverPath:null finished:false header:: 26,8 replyHeader:: 26,80,0 request:: '/hbase,F response:: v{'replication,'meta-region-server,'rs,'splitWAL,'backup-masters,'table-lock,'flush-table-proc,'region-in-transition,'online-snapshot,'master,'running,'recovering-regions,'draining,'namespace,'hbaseid,'table}
2018-04-13 15:51:30 [ hconnection-0x3ffcd140-shared--pool1-t1:51863 ] - [ INFO ] Call exception, tries=11, retries=35, started=51221 ms ago, cancelled=false, msg=row 'newlogs,,' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=test63.localdomain,43028,1523605899946, seqNum=0
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
Fri Apr 13 15:51:30 CST 2018, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=71361: row 'newlogs,,' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=test63.localdomain,43028,1523605899946, seqNum=0
at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.throwEnrichedException(RpcRetryingCallerWithReadReplicas.java:276)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:210)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:60)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:210)
at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:327)
at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:302)
at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:167)
at org.apache.hadoop.hbase.client.ClientScanner.<init>(ClientScanner.java:162)
at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:797)
at org.apache.hadoop.hbase.MetaTableAccessor.fullScan(MetaTableAccessor.java:602)
at org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:366)
at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:406)
at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:416)
at main.java.cn.ngsoc.hbase.util.HBaseUtil.createTable(HBaseUtil.java:162)
at main.java.cn.ngsoc.hbase.util.HBaseUtil.createTable(HBaseUtil.java:110)
at test.java.HBasePutTest.testCreateTable(HBasePutTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.net.SocketTimeoutException: callTimeout=60000, callDuration=71361: row 'newlogs,,' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=test63.localdomain,43028,1523605899946, seqNum=0
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:169)
at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:65)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.UnknownHostException: test63.localdomain
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.<init>(AbstractRpcClient.java:315)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.createBlockingRpcChannel(AbstractRpcClient.java:267)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getClient(ConnectionManager.java:1639)
at org.apache.hadoop.hbase.client.ScannerCallable.prepare(ScannerCallable.java:163)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.prepare(ScannerCallableWithReplicas.java:376)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:134)
... 4 more
2、
java.net.ConnectException: Connection refused: no further information
3、
org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException: This server is in the failed servers list
原因及解决方法
总的来说,一方面是hbase所在linux服务器的/etc/hosts文件有问题,另一方面是本机的/system32/drivers/etc/hosts文件有问题…(:з」∠)
linux服务器的/etc/hosts修改为:
#不能写为127.0.0.1(大概)
10.10.30.200 cdh0
10.10.30.203 cdh3
10.10.30.204 cdh4
window本机的hosts文件增加:
10.10.30.200 cdh0
10.10.30.203 cdh3
10.10.30.204 cdh4
重新运行程序,好使啦~
P.S:当前调试的程序来源*https://github.com/JasonBabylon/hbase-operations-with-java*,尝试一种大批量向Hbase插入数据的方法。
网友评论