记第一次使用HBase遇到的坑。

Exception in thread “main” org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=35, exceptions:

Tue Jan 20 11:05:37 CST 2015, org.apache.hadoop.hbase.client.RpcRetryingCaller@1474e45, java.net.ConnectException: Connection refused: no further information

(这段有点废话,可以略过)
先抛出报的错误。就是上面这个。在网上查了很久都没有完全符合自己的,现在总结原因是,我只有一台电脑,也没有aliyun之类的服务器,自己开的虚拟机。相信在校或者跟我一样刚毕业不久的小伙伴也没有钱去买特别高端的电脑吧,所以在做学习练习时,也就是开一个虚拟机,好的开两个,估计能开三个的也不多。好吧我承认我懒了,我就开了一个虚拟机,反正hbase和hadoop都是初学,弄了伪分布式(严格的说hbase我是按照官网慕课网老师的讲解配置的,是和官网完全分布式的配置相同的,只不过副本数写的1,regionservers里面也就写了一个域名,就是本机的域名)。

就是在上述的场景下,我在使用hbase shell时是没有问题的,但是在使用java api远程调用时抛出了上述的异常。那么直接说问题重点:hosts文件,我查到很多关于这个报错的解答也是给在hosts文件上,但是他们的跟我的还不是太一样,毕竟我使用一个单机啊。那么说说我的问题,就是:localhost的问题。如果场景是和我一样的同学,看看hosts文件下,有没有这样一句话:

            192.168.146.128  hbase

前面是你的这台主机的ip(必须是ifconfig显示的ip,不能是127.xxxx的这些值),后面是新的域名。那么就会有这样的疑问,为什么不能用localhost呢,同样是解析到本机ip,这个问题其实我也说不上来……,让你失望了,如果知道答案也请您能在下面留个言,也替我解答一下这个疑惑。

总结来看就是: localhost不能作为域名在hbase环境中去使用,需要重新配置

你可能感兴趣的:(大数据)