hbase java 基本操作_HBase-java api 基本操作

1 packageorg.admln.hbase;2

3 importjava.util.ArrayList;4 importjava.util.List;5

6 importorg.apache.hadoop.conf.Configuration;7 importorg.apache.hadoop.hbase.HBaseConfiguration;8 importorg.apache.hadoop.hbase.HColumnDescriptor;9 importorg.apache.hadoop.hbase.HTableDescriptor;10 importorg.apache.hadoop.hbase.KeyValue;11 importorg.apache.hadoop.hbase.TableName;12 importorg.apache.hadoop.hbase.client.Delete;13 importorg.apache.hadoop.hbase.client.Get;14 importorg.apache.hadoop.hbase.client.HBaseAdmin;15 importorg.apache.hadoop.hbase.client.HTable;16 importorg.apache.hadoop.hbase.client.Put;17 importorg.apache.hadoop.hbase.client.Result;18 importorg.apache.hadoop.hbase.client.ResultScanner;19 importorg.apache.hadoop.hbase.client.Scan;20 importorg.apache.hadoop.hbase.util.Bytes;21

22 public classOperateTable {23 //声明静态配置

24 private static Configuration conf = null;25 static{26 conf =HBaseConfiguration.create();27 conf.set("hbase.zookeeper.quorum", "slave1");28 conf.set("hbase.zookeeper.property.clientPort", "2181");29 }30

31 //创建数据库表

32 public static voidcreateTable(String tableName, String[] columnFamilys)33 throwsException {34 //新建一个数据库管理员

35 HBaseAdmin hAdmin = newHBaseAdmin(conf);36

37 if(hAdmin.tableExists(tableName)) {38 System.out.println("表已经存在");39 System.exit(0);40 } else{41 //新建一个 scores 表的描述

42 HTableDescriptor tableDesc = newHTableDescriptor(43 TableName.valueOf(tableName));44 //在描述里添加列族

45 for(String columnFamily : columnFamilys) {46 tableDesc.addFamily(newHColumnDescriptor(columnFamily));47 }48 //根据配置好的描述建表

49 hAdmin.createTable(tableDesc);50 System.out.println("创建表成功");51 }52 }53

54 //删除数据库表

55 public static void deleteTable(String tableName) throwsException {56 //新建一个数据库管理员

57 HBaseAdmin hAdmin = newHBaseAdmin(conf);58

59 if(hAdmin.tableExists(tableName)) {60 //关闭一个表

61 hAdmin.disableTable(tableName);62 //删除一个表

63 hAdmin.deleteTable(tableName);64 System.out.println("删除表成功");65

66 } else{67 System.out.println("删除的表不存在");68 System.exit(0);69 }70 }71

72 //添加一条数据

73 public static voidaddRow(String tableName, String row,74 String columnFamily, String column, String value) throwsException {75 HTable table = newHTable(conf, tableName);76 Put put = newPut(Bytes.toBytes(row));77 //参数出分别:列族、列、值

78 put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),79 Bytes.toBytes(value));80 table.put(put);81 }82

83 //删除一条数据

84 public static void delRow(String tableName, String row) throwsException {85 HTable table = newHTable(conf, tableName);86 Delete del = newDelete(Bytes.toBytes(row));87 table.delete(del);88 }89

90 //删除多条数据

91 public static voiddelMultiRows(String tableName, String[] rows)92 throwsException {93 HTable table = newHTable(conf, tableName);94 List list = new ArrayList();95

96 for(String row : rows) {97 Delete del = newDelete(Bytes.toBytes(row));98 list.add(del);99 }100

101 table.delete(list);102 }103

104 //get row

105 public static void getRow(String tableName, String row) throwsException {106 HTable table = newHTable(conf, tableName);107 Get get = newGet(Bytes.toBytes(row));108 Result result =table.get(get);109 //输出结果

110 for(KeyValue rowKV : result.raw()) {111 System.out.print("Row Name: " + new String(rowKV.getRow()) + " ");112 System.out.print("Timestamp: " + rowKV.getTimestamp() + " ");113 System.out.print("column Family: " + newString(rowKV.getFamily())114 + " ");115 System.out.print("Row Name: " + newString(rowKV.getQualifier())116 + " ");117 System.out.println("Value: " + new String(rowKV.getValue()) + " ");118 }119 }120

121 //get all records

122 public static void getAllRows(String tableName) throwsException {123 HTable table = newHTable(conf, tableName);124 Scan scan = newScan();125 ResultScanner results =table.getScanner(scan);126 //输出结果

127 for(Result result : results) {128 for(KeyValue rowKV : result.raw()) {129 System.out.print("Row Name: " + newString(rowKV.getRow())130 + " ");131 System.out.print("Timestamp: " + rowKV.getTimestamp() + " ");132 System.out.print("column Family: "

133 + new String(rowKV.getFamily()) + " ");134 System.out.print("Row Name: "

135 + new String(rowKV.getQualifier()) + " ");136 System.out.println("Value: " + newString(rowKV.getValue())137 + " ");138 }139 }140 }141

142 //main

143 public static voidmain(String[] args) {144 try{145 String tableName = "users2";146

147 //第一步:创建数据库表:“users2”

148 String[] columnFamilys = { "info", "course"};149 OperateTable.createTable(tableName, columnFamilys);150

151 //第二步:向数据表的添加数据152 //添加第一行数据

153 OperateTable.addRow(tableName, "tht", "info", "age", "20");154 OperateTable.addRow(tableName, "tht", "info", "sex", "boy");155 OperateTable.addRow(tableName, "tht", "course", "china", "97");156 OperateTable.addRow(tableName, "tht", "course", "math", "128");157 OperateTable.addRow(tableName, "tht", "course", "english", "85");158 //添加第二行数据

159 OperateTable.addRow(tableName, "xiaoxue", "info", "age", "19");160 OperateTable.addRow(tableName, "xiaoxue", "info", "sex", "boy");161 OperateTable.addRow(tableName, "xiaoxue", "course", "china", "90");162 OperateTable.addRow(tableName, "xiaoxue", "course", "math", "120");163 OperateTable164 .addRow(tableName, "xiaoxue", "course", "english", "90");165 //添加第三行数据

166 OperateTable.addRow(tableName, "qingqing", "info", "age", "18");167 OperateTable.addRow(tableName, "qingqing", "info", "sex", "girl");168 OperateTable169 .addRow(tableName, "qingqing", "course", "china", "100");170 OperateTable.addRow(tableName, "qingqing", "course", "math", "100");171 OperateTable.addRow(tableName, "qingqing", "course", "english",172 "99");173 //第三步:获取一条数据

174 System.out.println("获取一条数据");175 OperateTable.getRow(tableName, "tht");176 //第四步:获取所有数据

177 System.out.println("获取所有数据");178 OperateTable.getAllRows(tableName);179 //第五步:删除一条数据

180 System.out.println("删除一条数据");181 OperateTable.delRow(tableName, "tht");182 OperateTable.getAllRows(tableName);183 //第六步:删除多条数据

184 System.out.println("删除多条数据");185 String[] rows = { "xiaoxue", "qingqing"};186 OperateTable.delMultiRows(tableName, rows);187 OperateTable.getAllRows(tableName);188 //第八步:删除数据库

189 System.out.println("删除数据库");190 OperateTable.deleteTable(tableName);191

192 } catch(Exception err) {193 err.printStackTrace();194 }195 }196 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值