解决java连接虚拟机Hbase无反应的问题

 更新时间:2022年06月16日 08:44:18   作者:iRossini  
这篇文章主要介绍了解决java连接虚拟机Hbase无反应的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

问题说明

自己用虚拟机安装了Hbase、zookeeper,然后想用java访问。

代码如下

 import java.io.IOException; 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
 
 public class HbaseTest {
	 public static void main(String[] args) throws  MasterNotRunningException, IOException{
		String tableName = "myTest";
 
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.master", "192.168.48.129:16010");
		conf.set("hbase.zookeeper.property.clientPort", "2181");
//		conf.set("hbase.zookeeper.quorum", "master");
		conf.set("hbase.zookeeper.quorum", "192.168.48.129");
 
		Connection conn = ConnectionFactory.createConnection(conf);
		Table table = conn.getTable(TableName.valueOf(tableName));
 
		Get g = new Get(Bytes.toBytes("row1"));
		Result result = table.get(g);
 
		byte [] value = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));
		byte[] value1 = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));
 
		table.close();
		System.out.println(result.toString());
		System.out.println(Bytes.toString(value));
		System.out.println(Bytes.toString(value1));
		}    
 }

结果一直卡在result这一样没反应。

解决方案

1.由于Hbase自带有zookeeper

可以先禁用掉自带的zookeeper。

命令:vim   hbase/conf/hbase-env.sh

2.由于这里只是想测试下java连接hbae

也并没有搭建Hdoop环境,所以Hbase的hhbase-size.xml配置如下

3.再对zookeeper进行配置 zoo.cfg

4.因为是在windows环境下

用java访问虚拟机的Hbase,所以还需要以下配置

命令:vim /etc/host  添加一行,IP   hostname

命令:vim /etc/sysconfig/network-scripts/ifcfg-eth0 ,修改设备名

windows中相应配置:C:\Windows\System32\drivers\etc  在HOST文件中添加IP hostname

所有的配置就到这里结束,启动zookeeper,启动Hbase

java连接Hbase测试

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
 
 public class HbaseTest {
        public static void main(String[] args) throws  MasterNotRunningException, IOException{
              String tableName = "myTest";
              Configuration conf = HBaseConfiguration.create();
              conf.set("hbase.master", "192.168.48.129:16010");
              conf.set("hbase.zookeeper.property.clientPort", "2181");
//            conf.set("hbase.zookeeper.quorum", "master");
              conf.set("hbase.zookeeper.quorum", "192.168.48.129");
              Connection conn = ConnectionFactory.createConnection(conf);
              Table table = conn.getTable(TableName.valueOf(tableName));
              Get g = new Get(Bytes.toBytes("row1"));
              Result result = table.get(g);
              byte [] value = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));
              byte[] value1 = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));
              table.close();
              System.out.println(result.toString());
              System.out.println(Bytes.toString(value));
              System.out.println(Bytes.toString(value1));
              }  
 }

我个人使用如上方法能够解决连接Hbase无反应的问题。

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

相关文章

  • Java编程接口详细

    Java编程接口详细

    这篇文章主要小编主要给大家讲解的是Java编程中的接口,文章会从抽象类和抽象方法开始展开内容,感兴趣的小伙伴可以参考下面文章的具体内容
    2021-10-10
  • java 可重启线程及线程池类的设计(详解)

    java 可重启线程及线程池类的设计(详解)

    下面小编就为大家带来一篇java 可重启线程及线程池类的设计(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 深入理解 Java 中的 Switch 语句示例详解

    深入理解 Java 中的 Switch 语句示例详解

    在Java编程中,switch语句通过表达式值来执行不同代码块,本文介绍switch语法、案例、注意事项,以及与if语句的对比,包括基本语法、关键字、表达式、case常量、break和default的使用,以及如何根据输入的字符输出星期、大小写转换、成绩判断和季节判断等实际应用场景
    2024-10-10
  • 如何使用jenkins实现发布部分更新文件

    如何使用jenkins实现发布部分更新文件

    这篇文章主要介绍了如何使用jenkins实现发布部分更新文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 如何使用Comparator比较接口实现ArrayList集合排序

    如何使用Comparator比较接口实现ArrayList集合排序

    这篇文章主要介绍了如何使用Comparator比较接口实现ArrayList集合排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 关于JwtToken使用-重点看一下过期时间

    关于JwtToken使用-重点看一下过期时间

    这篇文章主要介绍了关于JwtToken使用-重点看一下过期时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 详解Spring Boot中如何自定义SpringMVC配置

    详解Spring Boot中如何自定义SpringMVC配置

    这篇文章主要给大家介绍了关于Spring Boot中如何自定义SpringMVC配置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • idea集成shell运行环境以及shell输出中文乱码的解决

    idea集成shell运行环境以及shell输出中文乱码的解决

    这篇文章主要介绍了idea集成shell运行环境以及shell输出中文乱码的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Spring中使用AOP进行事务管理实例

    Spring中使用AOP进行事务管理实例

    这篇文章主要介绍了Spring中使用AOP进行事务管理实例,当在Spring项目中涉及数据库操作时,事务管理是非常重要的,它可以确保数据库操作的一致性和完整性,Spring提供了强大的事务管理功能,可以通过声明式或编程式两种方式进行配置,需要的朋友可以参考下
    2023-09-09
  • Java web数据可视化实现原理解析

    Java web数据可视化实现原理解析

    这篇文章主要介绍了Java web数据可视化实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论