• Java 访问 Hbase 的API


    Java 访问 Hbase 的API

    第一步:要添加eclipse 对Hadoop的插件。

    1.复制 hadoop安装目录hadoop-0.20.203.0/contrib/eclipse-plugin/hadoop-eclipse-plugin-0.20.203.0.jar到eclipse安装目录下的plugins目录中。
    2.重启eclipse,配置hadoop installation directory。
    如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。 
    参考 http://blog.csdn.net/matraxa/article/details/7182382
    第二步:创建一个Map/Reduce 工程。
       把Hbase 所需要的包也放到 创建的工程下。
       有zookeeper-3.3.2.jar,hbase-0.90.4.jar,hbase-0.90.4-tests.jar
    第三步:访问Hbase的API
    Configuration config = HbaseConfiguration.create();  // 创建一个Hbase的实例
    HbaseAdmin admin = new HbaseAdmin(config);           // 获取一个Hbase实例的句柄
    HTableDescriptor htd = new HTableDescriptor("tableName");// 创建一个表名
    HColumnDescriptor hcd = new HColumnDescriptor("columnCell"); //创建一个列簇
    hcd.addFamily(htd); //把列簇放到表中
    admin.createTable(htd);//创建一个表
    byte [] tableName= htd.getName(); // 把表名转成一个byte 型
    HTableDescriptor [] tables = admin.listTables(); //获取此Hbase实例句柄下所有的表名
    //如果此Hbase 下有表,而且,和需要创建的表名一样,创建失败,抛出异常。
    if(tables.length!=1 && Bytes.equals(tableName,tables[0].getName())){ 
      throw new IOException("that table is exits,created faild");
    }
    HTable table = new HTable (config.tableName);  // 从Hbase句柄下获取指定的表名
    byte [] row1 = Bytes.toBytes("row1"); 
    Put p1 = new Put(row1); // 创建一个key 为row1 的值
    byte [] dataBytes = Bytes.toBytes("data"); //表名下创建的列簇
    //把列名为data:1,值为values1 的值 放到一个key中
    p1.add(dataBytes,Bytes.toBytes("1"),Bytes.toBytes("values1"));
    table.put(p1); //把key 放到table 中
    
    
    Get g = new Get(row1);//创建一个键值
    Result result = table.get(g); //表通过键值 获取一条记录
    System.out.pringtln("get:"+result);//把记录打印出来
    Scan scan = new Scan();    // 创建一个扫描指针
    ResultResult scanner = table.getScanner(scan);//表名通过指定来扫描每一条记录
    for(Result scannerResult:scanner){
      System.out.println("scan:"+scannerResult);
    }
    scanner.close();// 关闭 扫描 ,释放资源
    admin.disableTable(tableName);//把表设为不可用
    admin.deleteTable(tableName);//删除表


  • 相关阅读:
    输入框的提示文字的样式设置
    javascript高级程序设计第3版——第12章 DOM2与DOM3
    javascript高级程序设计第3版——第1Java章 DOM扩展
    javascript高级程序设计第3版——第10章 DOM
    javascript高级程序设计第3版——第8章 BOM(浏览器对象模型)
    javascript高级程序设计第3版——第7章 函数表达式
    javascript高级程序设计第3版——第6章 面向对象的程序设计
    小程序上传图片
    微信小程序验证码/密码输入框,一个框一个数字
    php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218280.html
Copyright © 2020-2023  润新知