解决Java API不能远程访问HBase的问题
作者:涂有 发布时间:2023-11-27 04:17:48
Java API不能远程访问HBase
今天我在虚拟机里面安装了Hbase 1.2.4,说在windows上Java API调用访问下玩玩,结果始终连接不上。
现象是启动程序后,程序出现卡死的状态,没报错也不停止,大约半分钟后才打印一堆日志出来,说连接重试了多次也连接不上,截图如下:
这个问题纠结了我半天,一查看发现HBase绑定的是本地IP:127.0.0.1,这当然访问不了
然后我想可以把HBase的绑定在指定IP上,去查Hbase官网,却没有这样的配置项
后面百度下,发现HBase的这个问题要特殊处理
分下面三步走,即可访问
1、配置Linux的hostname
2、配置Linux的hosts,映射ip的hostname的关系
3、配置访问windows的hosts
配置Llinux的hostname和hosts,这样HBase启动的时候,就会自动把HBase绑定到Linux域名对应的ip上去
配置Linux的hostname
这里配置的hostname要Linux重启才生效,为了不重启就生效,我们可以执行:hostname master命令,暂时设置hostname
配置Linux的hosts
映射ip的hostname的关系
配置完Linux的这两项,启动HBase就发现HBase绑定到了我们想暴露的ip上了
配置访问windows的hosts
路径为:C:\Windows\System32\drivers\etc\hosts
配置完这三项Java API就可以远程访问HBase了,切记最后配置windows的hosts也是必须的
最后附上Java代码示例
package priv.tuyou.HBase;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
/**
* HBase 1.2.4
* @author:涂有
* @date 2017年7月12日 下午2:17:44
*/
public class HBase {
public static Configuration conf;
public static Connection connection;
public static Admin admin;
public static void main(String[] args) throws IOException {
conf = HBaseConfiguration.create();
conf.set("hbase.master", "192.168.142.129:16000");
connection = ConnectionFactory.createConnection(conf);
admin = connection.getAdmin();
HTableDescriptor table = new HTableDescriptor(TableName.valueOf("table1"));
table.addFamily(new HColumnDescriptor("group1")); //创建表时至少加入一个列组
if(admin.tableExists(table.getTableName())){
admin.disableTable(table.getTableName());
admin.deleteTable(table.getTableName());
}
admin.createTable(table);
}
}
POM文件,依赖HBase-client库
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-client -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.2.4</version>
</dependency>
</dependencies>
Java API连接HBase问题
图1-1
使用Java api连接hbase,出现了图1-1的错误。
一般情况下需要先检查虚拟中进程是否完整,然后再检查api中的创建连接部分,看虚拟机IP地址和端口号是否正确,经过检查后,发现没有问题。
经过查阅资料后,window环境变量的用户环境变量中需要添加HADOOP_USER_NAME的配置,具体配置如图1-2所示,配置完成后点击确定,重启elipese即可解决上述问题。
图1-2
来源:https://blog.csdn.net/ty497122758/article/details/75010726
猜你喜欢
- 本文实例为大家分享了Java NIO实战之多人聊天室的具体代码,供大家参考,具体内容如下NIO服务端public class NioServ
- 介绍了图的最小生成树的概念,然后介绍了求最小生成树的两种算法:Prim算法和Kruskal算法的原理,最后提供了基于邻接矩阵和邻接链表的图对
- 在开发中,用到springboot项目,当打包后部署运行时,出现了这个问题,网上搜了好多,又是加META-INF配置,又是加啥的,感觉spr
- 短网址(Short URL) ,顾名思义就是看起来很短的网址。自从twitter推出短网址服务以后,各大互联网公司都推出了自己的短网址服务。
- 由于maven 使用上手很容易所以很多时候可以囫囵吞枣能够使用就可以了,由于作者最近在做的持续集成的代码扫描的时候,发现私有云里面大型工程m
- 使用wait()和notify()实现Java多线程通信:两个线程交替打印A和B,如ABABABpublic class Test { &n
- Java Memory Model简称JMM, 是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无
- 虽然项目中都夹杂了Hibernate的支持,但是团队开发中,很多人为了编写特殊查询的代码时都使用了JDBC进行查询。JDBC查询后返回的是一
- Springboot内部提供的事务管理器是根据autoconfigure来进行决定的。比如当使用jpa的时候,也就是pom中加入了sprin
- 这一篇写一下springboot整合solr,代码已经上传到github,传送门。1、新建core并配置schemasolr create
- 在做2048这个游戏时,因为菜单页面还能查看游戏规则,而这些规则又不在同一个页上,所以需要滑动页面实现页面切换,但是仅仅使用unity提供的
- 一、 Sharding-jdbc简介“Sharding-jdbc是开源的数据库操作中间件;定位为轻量级Java框架,在Java的JDBC层提
- 实际项目中pom.xml依赖写法: <dependency> <groupId>org.springf
- 本文实例讲述了C#实现winform自动关闭MessageBox对话框的方法。分享给大家供大家参考。具体实现方法如下:using Syste
- 初看 cgaolei 翻译的 Java技巧之双括弧初始化 一文,走马观花,只知用法,未细看后面的解释。蔚为惊艳,心里想 Java 竟然有这么
- The error simply says, “you've made changes in files in your works
- 我就废话不多说了,大家还是直接看代码吧~ public List<FreightM> sortList(List&l
- 问题背景昨晚同事找我帮他看一个问题,他使用mybatis-plus中提供的updateById方法,想将查询结果中某个字段原本不为null的
- 1、UUID类库UUID 根据时间戳实现自动无重复字符串定义// 获取UUIDpublic static UUID randomUUID()
- 摘要在J2SE 1.5的java.util.concurrent包(下称j.u.c包)中,大部分的同步器(例如锁,屏障等等)都是基于Abst