zoukankan      html  css  js  c++  java
  • hbase对Java的简单操作

    1.简单命令

    对表的操作:

    create--创建表

    list--查看table表的名称,类似show tables;

    descript--查看表的主体结构

    scan--查看表的实体内容

    disable/enable--表的可用性

    drop--删除表(需要先可用性为disable)

    对内容的操作:

    put--添加内容

    append--追加内容

    get--获取内容

    delete--删除内容

    2.java API的应用

    复制代码
    import java.io.IOException;
    import java.util.List;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.CellUtil;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    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;
    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;
    import org.junit.Before;
    import org.junit.Test;
    
    public class test {
    //通用类
        static Configuration conf;
        static Connection cont;
        static Admin admin;
        
        //建立连接
    /**
     *     
     */
        @Before
        public void init() {
                    // 取得一个数据库连接的配置参数对象
            conf=HBaseConfiguration.create();
                    // 设置连接参数:HBase数据库所在的主机IP
            conf.set("hbase.zookeeper.quorum", "192.168.110.101");
                    // 设置连接参数:HBase数据库使用的端口
            conf.set("hbase.zookeeper.clientPort", "2181");
            try {
        // 取得一个数据库连接对象   
    cont=ConnectionFactory.createConnection(conf);     // 取得一个数据库元数据操作对象 admin=cont.getAdmin(); } catch (IOException e) { e.printStackTrace(); } if(null!=cont) { System.out.println("hello hbase"); } } //查询数据 /** * * @throws IOException */ @Test public void testGetdeom() throws IOException { //根据表名,得到表内的字段 byte[] tn_bytes="customer".getBytes(); //获取里面的value,并重新以表的形式储存 TableName tn=TableName.valueOf(tn_bytes); //根据行键获取bytes,并赋值为get类型,以表的形式连接 Get gt=new Get("Laochu".getBytes()); Table tt=cont.getTable(tn); //从形成的表中获取行键为result类型 Result rt=tt.get(gt); //将获取内容以cell泛型存储 List<Cell> cell=rt.listCells(); //循环输出里面内容 for(Cell cloums:cell) { byte[] family=CellUtil.cloneFamily(cloums);//用cellutil编码转译,克隆得到 byte[] qualifier=CellUtil.cloneQualifier(cloums); byte[] value=CellUtil.cloneValue(cloums); long timetaple=cloums.getTimestamp(); System.out.println(" 列族:"+Bytes.toString(family) +" 列名:"+Bytes.toString(qualifier) +" 值:"+Bytes.toString(value) +" 时间戳:"+timetaple); } }
  • 相关阅读:
    oracle 查询 当前最大时间的value的值
    Visual Studio《加载此属性页时出错》的解决办法
    (转) 关于在IE6下 无法跳转问题
    LINQ TO XML 个人的一些心得1
    CSS实现单行、多行文本溢出显示省略号(…)
    html 图像映射(一个图像多个连接)
    JS页面跳转大全
    首行负缩进达到内容对齐的目的
    HTML图片死活不显示
    JS高级. 06 缓存、分析解决递归斐波那契数列、jQuery缓存、沙箱、函数的四种调用方式、call和apply修改函数调用方法
  • 原文地址:https://www.cnblogs.com/xiatian21/p/14201554.html
Copyright © 2011-2022 走看看