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); } }
  • 相关阅读:
    汇编中寄存器及其用处
    直接打印则需要调用PrintDocumnt.Print()方可打印,否按在对话框中点【打印】但不会有反应
    操作另一窗体的变量事件
    System.Windows.Forms.ListControl.SelectedValue.get 返回 null
    combox的selectedValue初始值注意事项
    vs2017中EF6.4无法导入到PM中,应使用EF6.2或6.1.1
    去除 Datetime的字段会自动赋默认值0001-1-1 0:00:00
    EF使用问题备忘
    EF中自定义连接字符串
    C#如何改变DataTable中的数据?
  • 原文地址:https://www.cnblogs.com/xiatian21/p/14201554.html
Copyright © 2011-2022 走看看