HBase--Java访问HBase示例
来源:互联网 发布:c语言 strlen 编辑:程序博客网 时间:2024/05/17 08:53
import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.CellUtil;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.HTableDescriptor;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HBaseAdmin;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;import org.apache.hadoop.hbase.Cell;public class OperateTable { private static Configuration conf = null; static { conf = HBaseConfiguration.create(); //conf.set("hbase.zookeeper.quorum","master"); //conf.set("hbase.zookeeper.property.clientPort", "2181"); } // 创建数据库表 public static void createTable(String tableName, String[] columnFamilys) throws Exception { // 新建一个数据库管理员 HBaseAdmin hAdmin = new HBaseAdmin(conf); if (hAdmin.tableExists(tableName)) { System.out.println("表已经存在"); System.exit(0); } else { // 新建一个 scores 表的描述 HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf(tableName)); // 在描述里添加列族 for (String columnFamily : columnFamilys) { tableDesc.addFamily(new HColumnDescriptor(columnFamily)); } // 根据配置好的描述建表 hAdmin.createTable(tableDesc); System.out.println("创建表成功"); } hAdmin.close(); } // 删除数据库表 public static void deleteTable(String tableName) throws Exception { // 新建一个数据库管理员 HBaseAdmin hAdmin = new HBaseAdmin(conf); if (hAdmin.tableExists(tableName)) { // 关闭一个表 hAdmin.disableTable(tableName); // 删除一个表 hAdmin.deleteTable(tableName); System.out.println("删除表成功"); } else { System.out.println("删除的表不存在"); System.exit(0); } hAdmin.close(); } // 添加一条数据 public static void addRow(String tableName, String row, String columnFamily, String column, String value) throws Exception { HTable table = new HTable(conf, tableName); Put put = new Put(Bytes.toBytes(row)); // 参数出分别:列族、列、值 put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(value)); table.put(put); table.close(); } // 删除一条数据 public static void delRow(String tableName, String row) throws Exception { HTable table = new HTable(conf, tableName); Delete del = new Delete(Bytes.toBytes(row)); table.delete(del); table.close(); } // 删除多条数据 public static void delMultiRows(String tableName, String[] rows) throws Exception { HTable table = new HTable(conf, tableName); List<Delete> list = new ArrayList<Delete>(); for (String row : rows) { Delete del = new Delete(Bytes.toBytes(row)); list.add(del); } table.delete(list); table.close(); } // get row public static void getRow(String tableName, String row) throws Exception { HTable table = new HTable(conf, tableName); Get get = new Get(Bytes.toBytes(row)); Result result = table.get(get); // 输出结果 for (Cell rowKV : result.rawCells()) { System.out.print("Row Name: " + new String(CellUtil.cloneRow(rowKV)) + " "); System.out.print("Timestamp: " + rowKV.getTimestamp() + " "); System.out.print("column Family: " + new String(CellUtil.cloneFamily(rowKV)) + " "); System.out.print("column Name: " + new String(CellUtil.cloneQualifier(rowKV)) + " "); System.out.println("Value: " + new String(CellUtil.cloneValue(rowKV)) + " "); } table.close(); } // get all records public static void getAllRows(String tableName) throws Exception { HTable table = new HTable(conf, tableName); Scan scan = new Scan(); ResultScanner results = table.getScanner(scan); // 输出结果 for (Result result : results) { for (Cell rowKV : result.rawCells()) { System.out.print("Row Name: " + new String(CellUtil.cloneRow(rowKV)) + " "); System.out.print("Timestamp: " + rowKV.getTimestamp() + " "); System.out.print("column Family: " + new String(CellUtil.cloneFamily(rowKV)) + " "); System.out.print("column Name: " + new String(CellUtil.cloneQualifier(rowKV)) + " "); System.out.println("Value: " + new String(CellUtil.cloneValue(rowKV)) + " "); } } table.close(); } // main public static void main(String[] args) { try { String tableName = "users2"; // 第一步:创建数据库表:“users2” String[] columnFamilys = { "info", "course" }; OperateTable.createTable(tableName, columnFamilys); // 第二步:向数据表的添加数据 // 添加第一行数据 OperateTable.addRow(tableName, "tht", "info", "age", "20"); OperateTable.addRow(tableName, "tht", "info", "sex", "boy"); OperateTable.addRow(tableName, "tht", "course", "china", "97"); OperateTable.addRow(tableName, "tht", "course", "math", "128"); OperateTable.addRow(tableName, "tht", "course", "english", "85"); // 添加第二行数据 OperateTable.addRow(tableName, "xiaoxue", "info", "age", "19"); OperateTable.addRow(tableName, "xiaoxue", "info", "sex", "boy"); OperateTable.addRow(tableName, "xiaoxue", "course", "china", "90"); OperateTable.addRow(tableName, "xiaoxue", "course", "math", "120"); OperateTable .addRow(tableName, "xiaoxue", "course", "english", "90"); // 添加第三行数据 OperateTable.addRow(tableName, "qingqing", "info", "age", "18"); OperateTable.addRow(tableName, "qingqing", "info", "sex", "girl"); OperateTable .addRow(tableName, "qingqing", "course", "china", "100"); OperateTable.addRow(tableName, "qingqing", "course", "math", "100"); OperateTable.addRow(tableName, "qingqing", "course", "english", "99"); // 第三步:获取一条数据 System.out.println("获取一条数据"); OperateTable.getRow(tableName, "tht"); // 第四步:获取所有数据 System.out.println("获取所有数据"); OperateTable.getAllRows(tableName); // 第五步:删除一条数据 System.out.println("删除一条数据"); OperateTable.delRow(tableName, "tht"); OperateTable.getAllRows(tableName); // 第六步:删除多条数据 System.out.println("删除多条数据"); String[] rows = { "xiaoxue", "qingqing" }; OperateTable.delMultiRows(tableName, rows); OperateTable.getAllRows(tableName); // 第八步:删除数据库 System.out.println("删除数据库"); OperateTable.deleteTable(tableName); } catch (Exception err) { err.printStackTrace(); } }}
0 0
- HBase--Java访问HBase示例
- HBase Java简单示例
- HBase Java简单示例
- HBase Java简单示例
- HBase Java简单示例
- HBase Java简单示例
- Hbase Java客户端示例
- HBase Java编程示例
- HBase Java简单示例
- java api 访问 Hbase
- java客户端访问hbase
- java访问Hbase
- Java 访问Hbase数据库
- HBase Java API 使用示例
- Hbase 简单操作Java示例
- HBase Java API 使用示例
- hbase示例
- Java 访问 Hbase 的API
- 深度解读django class base view 之 detaiview
- RedHat 8.0/9.0 LVS安裝手冊
- 类1(1)
- JAVA WebService接口调用
- unity3d开发植物生长素游戏
- HBase--Java访问HBase示例
- SVN的eclipse插件下载
- KVO实现原理探究
- 使用quick自定义Button
- SSHを用いた転送
- Android View 的生命周期
- 用两个栈实现一个队列——我作为面试官的小结
- 如何将解压版的tomcat设置为windows 服务启动
- SHA1可用于检验文件是否是官方原版文件