当前位置: 代码网 > it编程>编程语言>Java > java: 从HBase中读取数据

java: 从HBase中读取数据

2024年07月28日 Java 我要评论
【代码】java: 从HBase中读取数据。

一、添加依赖:

        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-client</artifactid>
            <version>2.6.0</version>
        </dependency>

        <dependency>
            <groupid>org.apache.hbase</groupid>
            <artifactid>hbase-client</artifactid>
            <version>2.4.2</version>
        </dependency>


二、使用scanner读取数据示例:

package cn.edu.tju;

import org.apache.hadoop.conf.configuration;
import org.apache.hadoop.hbase.cell;
import org.apache.hadoop.hbase.cellscanner;
import org.apache.hadoop.hbase.hbaseconfiguration;
import org.apache.hadoop.hbase.tablename;
import org.apache.hadoop.hbase.client.*;

public class testhbaseread {
    public static void main(string[] args) throws exception {
        configuration config = hbaseconfiguration.create();// create configuration
        //zookeeper 地址
        config.set("hbase.zookeeper.quorum","xxx.xxx.xxx.xxx");//
        //zookeeper端口
        config.set("hbase.zookeeper.property.clientport", "2181");//
        //表名,必须提前在hbase中创建
        string tablename ="c1";
        //row key
        string rowkey = "mykey2";
        //family,必须是hbase中有的family
        string familyname = "fm2";
        //指定的某个column name
        string specifiedcolumnname = "by";

        connection connection = connectionfactory.createconnection(config);

        get g = new get(rowkey.getbytes());
        g.addfamily(familyname.getbytes());
        try {
            table table = connection.gettable(tablename.valueof(tablename));
            result result = table.get(g);
            cellscanner cellscanner =result.cellscanner();
            while (cellscanner.advance()){
                cell cell = cellscanner.current();
                byte[] rowarray = cell.getrowarray(); //row key 字节数组
                byte[] familyarray = cell.getfamilyarray(); //列族 字节数组
                byte[] qualifierarray = cell.getqualifierarray();//列名 字节数据
                byte[] valuearray = cell.getvaluearray();// 值 字节数组

                string columnname=new string(qualifierarray,cell.getqualifieroffset(),cell.getqualifierlength());
                string columnvalue=new string(valuearray,cell.getvalueoffset(),cell.getvaluelength());
                if(specifiedcolumnname.equals(columnname)){
                    system.out.println(columnvalue);
                }
            }
        }catch(exception ex) {
            system.out.println(ex.getmessage());
        }
    }
}

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com