• 虚拟机环境下使用java访问hbase进行表操作3


    该篇内容是承接2的:

    1. public static void deleTable(String myTableString)throws IOException{

    2.           //获得当前表格的名字实列

    3.  TableName tableName =     TableName.valueOf(myTableString);

    4.  if(admin.tableExists(tableName)){

    5. //禁用表

    6.  admin.disableTable(tableName);

    7. //删除表

    8.  admin.deleteTable(tableName);

    9.  }

    10.  else{

    11.  System.err.println("tableName not exist");

    12.  }

    13.  }

    14.  public static void addcol(String myTableString,String colString)throws IOException{//添加列族的方法

    15. //获得当前表格的名字实列

    16.  TableName tableName =  TableName.valueOf(myTableString);

    17. //直接根据默认属性实列化一个描述列族信息的对象添加列族

    18.  admin.addColumn(tableName,new HColumnDescriptor(colString));

    19.  System.err.println("add success");

    20.  }

    21.  public static void removecol(String mytaString,String colString)throws IOException{

    22. //获得当前表格的名字实列

    23.  TableName tableName = TableName.valueOf(mytaString);

    24. //禁用表

    25.  admin.disableTable(tableName);

    26. //删除列族

    27.  admin.deleteColumn(tableName,Bytes.toBytes(colString));

    28. //恢复表 

    29.  admin.enableTable(tableName);

    30.  System.err.println("delete success");

    31.  }

    32. //添加数据

    33.  public static void insertData(String myTabString,String rowKey,String colFamily,String colString, String value)throws IOException{

    34. //返回Table接口的一个子对象

    35.  Table table   =  connection.getTable(TableName.valueOf(myTabString));

    36. //实列化一个Put对象

    37.  Put put = new Put(rowKey.getBytes());

    38. //将指定的列族,列限定符,对应的值添加到Put实列中

    39.  put.addColumn(colFamily.getBytes(),        colString.getBytes(),value.getBytes());

    40. //向表中添加值

    41.  table.put(put);

    42. //释放所有资源,根据缓冲区数据的变化更新Table

    43.  table.close();

    44.  }

    45. //get方法浏览数据

    46.  public static void getData(String myTabString,String rowkey) throws IOException{

    47.   //获得当前表格的名字实列,建立表连接

    48.  Table table =  connection.getTable(TableName.valueOf(myTabString));

    49.             //实列化一个Get对象,描述查询条件

    50.  Get get= new Get(Bytes.toBytes(rowkey));

    51. //进行实际查询,从指定的行的某些单元格中取出相应的值

    52.  Result result= table.get(get);

    53.   //get方法一次获取一个逻辑行,里面包括多个键值对即cell,通过循环将逐个键值对输出显示

    54.  for(Cell cell:result.rawCells()){

    55.  System.out.println(new String(CellUtil.getCellKeyAsString(cell))+":"+new String(CellUtil.cloneFamily(cell))

    56.  +":"+new String(CellUtil.cloneQualifier(cell))+":"

    57.  +new  String(CellUtil.cloneValue(cell))+":"+cell.getTimestamp());

    58.  }

    59.  table.close();

    60. //释放所有资源,根据缓冲区中的数据变 化更新Table

    61.  }

              

    62.  public static void ScanData(String myTabString)throws IOException{

    63.      //建立连接获得当前表格的名字实列

    64.  Table table= connection.getTable(TableName.valueOf(myTabString));

    65. //实列化一个Scan对象,描述查询条件

    66.  Scan scan= new Scan();

    67.   //获得ResultScanner实列,进行实际查询

    68.  ResultScanner results =table.getScanner(scan);

    69. //二层循环显示每一个键值对的内容

    70.  for(Result result:results){

    71.  for(Cell cell:result.rawCells()){

    72. //显示行键,列族名,列标识符,显示值,显示键值对的时间

    73.  System.out.println(new        String(CellUtil.cloneRow(cell))+":"+new  String(CellUtil.cloneFamily(cell))

    74.  +":"+new String(CellUtil.cloneQualifier(cell))

    75.  +":"+new String(CellUtil.cloneValue(cell))+":"+

    76.  cell.getTimestamp());

    77.  }

    78.  }

    79. //关闭连接

    80.  table.close();

    81.  }

    82.  }

    在Java中实现后需要在hbase中进行验证

    需要环境:

    Linux Ubuntu 14.04

    jdk-7u75-linux-x64

    hbase-1.0.0-cdh5.4.5

    hadoop-2.6.0-cdh5.4.5

    hadoop-2.6.0-eclipse-cdh5.4.5.jar

    eclipse-java-juno-SR2-linux-gtk-x86_64

  • 相关阅读:
    java 多级图的最短路径
    在dos中编译java文件
    apollo客户端的长轮询机制的原理
    Apollo配置中心动态生效实现原理
    jmx_exporter+prometheus+grafana实现kafka metric监控
    XXL-JOB(1) 分布式任务系统选型和XXL-JOB介绍,这篇文章相当的经典呀
    grafana根据不同prometheus server统计数据
    XXL-JOB的使用教程
    普罗米修斯官方文档
    Prometheus标签的管理
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/9994430.html
Copyright © 2020-2023  润新知