设为首页 加入收藏

TOP

Eclipse和HBase连不上的问题分析
2019-05-08 13:52:15 】 浏览:56
Tags:Eclipse HBase 连不上 问题 分析

搭建一套物理上的hadoop和hbase集群,二者都是采用的完全分布式模式。
若hbase用hdfs文件系统的话,那么就需要先搭建hadoop集群(若是file文件系统便不需要先搭建hadoop)。而hbase与hadoop存在版本兼容的问题,原因是RPC协议对版本的要求非常严格。因此在选择hbase和hadoop的版本时,务必要参考官方文档。如下,
这里写图片描述

本人选择的版本:
JDK版本:jdk1.8.0_25
Hadoop版本:2.7.2
Hbase版本:1.2.2
没有用单独的zookeeper集群,而是用的hbase自带的zookeeper管理。

Hadoop集群和Hbase集群用的是同样的三台机器,机器概况:
这里写图片描述

先搭建好hadoop集群,这个比较简单,网上一大堆安装的帖子。贴一下我的一些主要参数:

core-site.xml
这里写图片描述

hdfs-site.xml
这里写图片描述

mapred-site.xml
这里写图片描述

yarn-site.xml这里写图片描述

Hadoop集群搭建起来后,能够正常运行,且通过eclipse测试也没问题(关于eclipse连接hadoop集群进行开发,请参考另外一篇博文http://blog.csdn.net/nyyjs/article/details/73499664

问题的关键在于Hbase集群。
Hbase集群搭建起来后,是可以通过命令行进行CRUD的,也能正常使用hdfs文件,如图,该图是通过本地windows的eclipse来访问hbase。
这里写图片描述

但是,我在本地用telnet来测试hbase的服务和端口时,却失败了。

问题详述:
hbase-site.xml的主要配置项
这里写图片描述
这里写图片描述

Windows的hosts文件:
这里写图片描述

能够正常ping通,如下:
这里写图片描述

但是telnet不通:
这里写图片描述

这说明本机的ip到hbase集群所在的linux机器的网络是通的,但是外部并不能访问hbase服务。

我本机windows的ip:
这里写图片描述

用netstat对比查看hbase服务和hadoop服务,发现:
Hbase:
这里写图片描述

Hadoop:
这里写图片描述

看上面三幅图,看出问题来了么。。。。。。
是的,问题的原因在于hbase服务用的是内网的ip来监听外部链接请求,而我的内网ip和hbase的机器不在一个网段,无法通过内网来与hbase建立tcp连接。还可以看出hadoop服务是通过外网来与外界建立tcp的连接的,因此我们能正常通过windows下的eclipse来访问linux的hadoop集群。

问题貌似找到了,那接下来就是要让hbase用外网ip来进行监听。怎么搞?当时感觉应该是在hbase-site.xml中来对某个参数进行设置。先看官方文档,但是貌似没有这样的配置项,于是用百度搜,结果出来的都是什么修改windows下的hosts、关闭windows和linux防火墙云云,一点有价值的东西都没有。最后改用google来搜,搜到如下结果:

这里写图片描述

觉得很奇怪,这些配置项在Hbase的官方文档中并没有出现。怀疑归怀疑,还是要试一试,于是在hbase-site.xml的配置项中加入:

这里写图片描述

重启hbase之后,再次用telnet测试就可以了:
如下:
这里写图片描述
telnet结果如下,什么都没有表示已经通了
这里写图片描述

同时用netstat再次查看hbase服务:
这里写图片描述
验证了我们的想法。

几点启示:
1, 官方文档很权威,但更重要的是需有自己的思考
2, 技术人需善用google
3, 慎用baidu

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hbase   snapshot 下一篇Hbase获得查询结果总数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目