解决Java API不能远程访问HBase的问题

 更新时间:2022年06月15日 17:07:08   作者:涂有  
这篇文章主要介绍了解决Java API不能远程访问HBase的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring Security实现登录认证实战教程

    Spring Security实现登录认证实战教程

    这篇文章主要介绍了Spring Security实现登录认证实战教程,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-06-06
  • Hadoop集成Spring的使用详细教程(快速入门大数据)

    Hadoop集成Spring的使用详细教程(快速入门大数据)

    这篇文章主要介绍了Hadoop集成Spring的使用详细教程(快速入门大数据),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java1.8中LocalDate方法使用总结

    Java1.8中LocalDate方法使用总结

    LocalDate是Java8中的一个日期类,用于表示年月日,它是不可变的,线程安全的,下面这篇文章主要给大家介绍了关于Java1.8中LocalDate方法使用的相关资料,需要的朋友可以参考下
    2024-03-03
  • Spring Boot应用上传文件时报错的原因及解决方案

    Spring Boot应用上传文件时报错的原因及解决方案

    这篇文章主要介绍了Spring Boot应用上传文件时报错的原因及解决方案,帮助大家更好的理解和学习使用spring boot框架,感兴趣的朋友可以了解下
    2021-02-02
  • Draw.io部署详细步骤

    Draw.io部署详细步骤

    Draw.io 是 GitHub 上的一个开源的免费流程图绘制工具,功能非常的丰富,Draw.io 是开源的,所以针对外网访问不稳定或在访问不了外网的情况,我们可以将其部署到我们本地,也就是把本地当作服务端,本文将一步一步介绍具体部署步骤,感兴趣的朋友一起看看吧
    2023-10-10
  • Spring整合mybatis、springMVC总结

    Spring整合mybatis、springMVC总结

    这篇文章主要为大家详细介绍了Java整合Mybatis,SpringMVC,文中有详细的代码示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-05-05
  • Java 实现缓存的三种方式及问题汇总

    Java 实现缓存的三种方式及问题汇总

    这篇文章主要介绍了Java 实现缓存的三种方式及问题汇总,HashMap实现缓存,可以实现简单的本地缓存,但是实际开发中不推荐,我们可以简单模拟一下缓存的实现,本文通过示例代码介绍的非常详细,感兴趣的朋友一起看看吧
    2024-03-03
  • Java接收xml格式参数转为json的方法

    Java接收xml格式参数转为json的方法

    文章主要介绍了如何使用JAXB将XML格式的参数接收并转换为Java实体类,然后将实体类转换为JSON格式,文中提到在实体类中使用`@XmlElement`和`@JsonProperty`注解的重要性,以及如何处理复杂的XML结构
    2024-11-11
  • 基于Java实现PDF文本旋转倾斜

    基于Java实现PDF文本旋转倾斜

    这篇文章主要介绍了基于Java实现PDF文本旋转倾斜,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 基于SpringMVC入门案例及讲解

    基于SpringMVC入门案例及讲解

    这篇文章主要介绍了基于SpringMVC入门案例及讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01

最新评论