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

目录
  • 问题说明
  • 代码如下
  • 解决方案
    • 1.由于Hbase自带有zookeeper
    • 2.由于这里只是想测试下java连接hbae
    • 3.再对zookeeper进行配置 zoo.cfg
    • 4.因为是在windows环境下

问题说明

自己用虚拟机安装了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无反应的问题。

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

(0)

相关推荐

  • 在本地用idea连接虚拟机上的hbase集群的实现代码

    1.用maven添加依赖(看清自己hbase版本) <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.apache.hbase</

  • IDEA远程连接HBase及其Java API实战详解

    开放端口 安全组没开放端口是原罪!!!导致好多BUG费时费力.Hbase悄悄咪咪的用了好多端口,比如被我抓到的42239,直接搜索报错药不对症. Hbase安装 下载压缩包 可以去官网下载http://hbase.apache.org/downloads.html 也可以去镜像下载历史版本http://archive.apache.org/dist/hbase/ 以1.3.2版本为例: 直接下载或者下载到本地再上传都行,看你哪个快. wget http://archive.apache.org/

  • 使用Java对Hbase操作总结及示例代码

    前面已经给大家讲解过如何使用Hbase建表,以及基本的操作和一些常用shell命令,今天就给大家介绍下如何使用java对Hbase进行各种操作. 没印象的话可以再去浏览下: Hbase入门教程,shell命令大全讲解 Java操作Hbase主要方法: 1.Configuration 在使用Java API时,Client端需要知道HBase的配置环境,如存储地址,zookeeper等信息. 这些信息通过Configuration对象来封装,可通过如下代码构建该对象: Configuration

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

    目录 问题说明 代码如下 解决方案 1.由于Hbase自带有zookeeper 2.由于这里只是想测试下java连接hbae 3.再对zookeeper进行配置 zoo.cfg 4.因为是在windows环境下 问题说明 自己用虚拟机安装了Hbase.zookeeper,然后想用java访问. 代码如下 import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop

  • 解决java连接zookeeper很慢的问题

    目录 java连接zookeeper很慢 记一次惨痛的zookeeper连接教训 java连接zookeeper很慢 最近在学习zookeeper,但是在连接zookeeper服务端时很慢,每次都超过18s 在头条尝试搜索了一下这个问题,找到了答案 原因是在服务器端集群时,设置的host是使用hostname,而不是ip,且客户端没有配置hostname和ip的映射导致的问题, 在客户端加上第一张图中的ip映射关系即可,或者把服务端的server中的hostname换成ip即可 记一次惨痛的zo

  • java连接HBase,连接不上报错can not resolve问题及解决

    目录 java连接HBase,连接不上报错can not resolve java连接Hbase异常 问题原因 解决办法 java连接HBase,连接不上报错can not resolve [INFO] [2020-06-23 21:30:16][org.apache.hadoop.hbase.client.RpcRetryingCaller - 165]Call exception, tries=10, retries=35, started=47508 ms ago, cancelled=f

  • Xshell5连接虚拟机中的Linux的方法以及失败原因解决

    很早以前就装了虚拟机,现在终于装上了Linux.虽然机子的配置还不错,虚拟机一般也不会特别卡,但是来回切换有时也是一件十分令人头疼的事情.虽然说不卡,但是CPU占用率还是很高的.也十分耗电.所以自从听说了有Xshell这个神器之后 我就开始对他进行了相关的钻研.(出现问题请直接往下拉.) 首先Xshell是一个通过在同一网段进行连接两个主机的一款应用.简单的来说就是可以用一台机器来操控多台电脑的一个应用.注意 是同一个网段,这个概念很重要我们在配置Xshell的时候是一定会用到的.这个应用可以让

  • Navicat连接虚拟机mysql常见错误问题及解决方法

    问题1 解决 启动服务:service mysqld start; /sbin/iptables -I INPUT -p tcp --dport 8011 -j ACCEPT #开启8011端口 /etc/rc.d/init.d/iptables save #保存配置 /etc/rc.d/init.d/iptables restart #重启服务 #查看端口是否已经开放 /etc/init.d/iptables status 问题2 解决 Mysql -u root -proot(root为密码

  • 解决Java中OutOfMemoryError的问题

    目前为止,我遇到使用Tomcat有三种情况:第一,使用Eclipse,在Eclipse中配置Tomcat.第二,直接在Tomcat中部署项目.第三将Tomcat安装为windows服务. 在这三种情况下,出现OutOfMemoryError.该怎么解决呢?这里我不得不提我被网上那些不负责任的文章害得很惨.各种设置内存的方法都试了,可就是不起作用.下面我说的这几种方法都是我亲自试验过的,没有问题. 第一种情况:  如图:我用红色框框出来的.其中Xms和Xmx是增加java虚拟机初始堆大小和最大堆大

  • 完美解决java.lang.OutOfMemoryError处理错误的问题

    原因: 常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多重复的对象实体: 4.使用的第三方软件中的BUG: 5.启动参数内存值设定的过小: 常见错误提示: 1.tomcat:java.lang.OutOfMemoryError: PermGen space 2.tomcat:java.lang.OutOfMemoryError: Java heap space 3

  • Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍

    Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍 一.基本环境: mongdb3.0.5数据库 spring-data-MongoDB-1.7.2.jar mongo-Java-driver-3.0.2.jar Linux-redhat6.3 tomcat7 二.搭建mongodb副本集: 1.  分别在三台linux系统机上安装mongodb,(为避免和机器上原有的mongodb端口冲突,这里设为57017): 192.168.0.160 192.168.0.

  • Java连接操作Oracle数据库代码详解

    废话不多说了,直接给大家贴关键代码了,具体代码如下所示: package com.sp.test; import java.sql.*; import java.util.*; public class Text_lianxi extends Thread { public void run() { try { yunxing(); Thread.sleep(10000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.pr

  • 基于Java创建XML(无中文乱码)过程解析

    这篇文章主要介绍了基于Java创建XML(无中文乱码)过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 package com.zyb.xml; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import org.dom4j.Document; i

随机推荐