java 连接hbase

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 连接hbase相关的知识,希望对你有一定的参考价值。

package com.weshare.bigdata;

import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

public class hbaseLink
static org.apache.hadoop.conf.Configuration configuration=null;
private org.apache.hadoop.hbase.client.Connection connection=null;
private Table table=null;

public void init() throws Exception
    configuration=HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum", "服务器地址");
    configuration.set("hbase.zookeeper.property.clientPort", "服务器端口");// zookeeper端口
    connection=ConnectionFactory.createConnection(configuration);

// try
// table = connection.getTable(TableName.valueOf("hbase表名"));
// ResultScanner rs = table.getScanner(new Scan());
// int num=0;
// for (Result r : rs)
// Byte b= r.getRow(scan);
// System.out.println("获得到rowkey:" + new String(r.getRow()));
// num++;
//
// System.out.print(num);
// catch(Exception e)
// e.printStackTrace();
//

public void queryall(String tableName) throws Exception
table = connection.getTable(TableName.valueOf(tableName));
ResultScanner rs = table.getScanner(new Scan());
int num=0;
for (Result r : rs)
//System.out.println("获得到rowkey:" + new String(r.getRow()));
num++;

        
        System.out.print(num);

public void checkColName(String tableName,String rowkey,String exceptedColName) throws Exception
    table = connection.getTable(TableName.valueOf(tableName));//建立hbase表链接
    Get scan = new Get(rowkey.getBytes());//获取rokey,将其转义成byte字节
    Result r=table.get(scan);//使用转义的rowkey查询表,将其查询结果返回给Result
    System.out.println("1");
    if(r.rawCells().equals("")||r.rawCells()==null||r.rawCells().length==0)
        System.out.println("3");
    
    for (Cell keyValue : r.rawCells()) 
        System.out.println("2");
        String colName = Bytes.toString(keyValue.getQualifierArray(),keyValue.getQualifierOffset(),keyValue.getQualifierLength());
        if(!colName.equals(exceptedColName))
            System.out.println("校验成功,不存在colName:"+exceptedColName+",实际colName:" + colName);
        else if(colName.isEmpty())
            System.out.println("校验成功,查询无colName");
        else
            System.out.println("校验失败");
        
        System.out.println("12:"+keyValue.getFamilyLength());

    

// Get coln=scan.addFamily(rowkey.getBytes());
// NavigableMap nm=scan.getFamilyMap(rowkey.getBytes());
// System.out.println(coln.toString());


public static void main(String[] args) throws Exception
    hbaseLink hl=new hbaseLink();
    hl.init();
    hl.queryall("tablename");

// hl.checkColName("table","rowkey","column");

以上是关于java 连接hbase的主要内容,如果未能解决你的问题,请参考以下文章

java 连接hbase

Java 连接 HBase ( kerberized 集群 )

hbase单机模式下,使用java API远程连接hbase的问题。

java连接Hbase数据库

java连接hbase

Java连接Hbase异常