• HBASE基础(5):语法(3) API (2) DML


    创建类HBase_DML

    1 插入数据

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import java.io.IOException;
    
    public class HBase_DML {
    
        //TODO 插入数据
        public static void putData(String tableName, String rowKey, String cf, String cn, String value) throws IOException {
    
            //1.获取配置信息并设置连接参数
            Configuration configuration = HBaseConfiguration.create();
            configuration.set("hbase.zookeeper.quorum", "hadoop102,hadoop103,hadoop104");
    
            //2.获取连接
            Connection connection = ConnectionFactory.createConnection(configuration);
    
            //3.获取表的连接
            Table table = connection.getTable(TableName.valueOf(tableName));
    
            //4.创建Put对象
            Put put = new Put(Bytes.toBytes(rowKey));
    
            //5.放入数据
            put.addColumn(Bytes.toBytes(cf), Bytes.toBytes(cn), Bytes.toBytes(value));
    
            //6.执行插入数据操作
            table.put(put);
    
            //7.关闭连接
            table.close();
            connection.close();
        }
    
    }

    2 单条数据查询

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import java.io.IOException;
    
    public class HBase_DML {
    
        //TODO 单条数据查询(GET)
        public static void getDate(String tableName, String rowKey, String cf, String cn) throws IOException {
    
            //1.获取配置信息并设置连接参数
            Configuration configuration = HBaseConfiguration.create();
            configuration.set("hbase.zookeeper.quorum", "hadoop102,hadoop103,hadoop104");
    
            //2.获取连接
            Connection connection = ConnectionFactory.createConnection(configuration);
    
            //3.获取表的连接
            Table table = connection.getTable(TableName.valueOf(tableName));
    
            //4.创建Get对象
            Get get = new Get(Bytes.toBytes(rowKey));
            // 指定列族查询
            // get.addFamily(Bytes.toBytes(cf));
            // 指定列族:列查询
            // get.addColumn(Bytes.toBytes(cf), Bytes.toBytes(cn));
    
            //5.查询数据
            Result result = table.get(get);
    
            //6.解析result
            for (Cell cell : result.rawCells()) {
                System.out.println("ROW:" + Bytes.toString(CellUtil.cloneRow(cell)) +
                            " CF:" + Bytes.toString(CellUtil.cloneFamily(cell))+
                            " CL:" + Bytes.toString(CellUtil.cloneQualifier(cell))+
                            " VALUE:" + Bytes.toString(CellUtil.cloneValue(cell)));
            }
    
            //7.关闭连接
            table.close();
            connection.close();
    
        }
    
    }

    3 扫描数据

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import java.io.IOException;
    
    public class HBase_DML {
    
        //TODO 扫描数据(Scan)
        public static void scanTable(String tableName) throws IOException {
    
            //1.获取配置信息并设置连接参数
            Configuration configuration = HBaseConfiguration.create();
            configuration.set("hbase.zookeeper.quorum", "hadoop102,hadoop103,hadoop104");
    
            //2.获取连接
            Connection connection = ConnectionFactory.createConnection(configuration);
    
            //3.获取表的连接
            Table table = connection.getTable(TableName.valueOf(tableName));
    
            //4.创建Scan对象
            Scan scan = new Scan();
    
            //5.扫描数据
            ResultScanner results = table.getScanner(scan);
    
            //6.解析results
            for (Result result : results) {
                for (Cell cell : result.rawCells()) {
          System.out.println(
                            Bytes.toString(CellUtil.cloneRow(cell))+":"+
                                    Bytes.toString(CellUtil.cloneFamily(cell))+":" +
                                    Bytes.toString(CellUtil.cloneQualifier(cell)) +":" +
                                    Bytes.toString(CellUtil.cloneValue(cell))
                    );
                }
            }
    
            //7.关闭资源
            table.close();
            connection.close();
    
        }
    
    }

    4 删除数据

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import java.io.IOException;
    
    public class HBase_DML {
    
        //TODO 删除数据
        public static void deletaData(String tableName, String rowKey, String cf, String cn) throws IOException {
    
            //1.获取配置信息并设置连接参数
            Configuration configuration = HBaseConfiguration.create();
            configuration.set("hbase.zookeeper.quorum", "hadoop102,hadoop103,hadoop104");
    
            //2.获取连接
            Connection connection = ConnectionFactory.createConnection(configuration);
    
            //3.获取表的连接
            Table table = connection.getTable(TableName.valueOf(tableName));
    
            //4.创建Delete对象
            Delete delete = new Delete(Bytes.toBytes(rowKey));
    
            // 指定列族删除数据
            // delete.addFamily(Bytes.toBytes(cf));
            // 指定列族:列删除数据(所有版本)
            // delete.addColumn(Bytes.toBytes(cf), Bytes.toBytes(cn));
            // 指定列族:列删除数据(指定版本)
            // delete.addColumns(Bytes.toBytes(cf), Bytes.toBytes(cn));
    
            //5.执行删除数据操作
            table.delete(delete);
    
            //6.关闭资源
            table.close();
            connection.close();
    
    }
    
    }

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/15225444.html

  • 相关阅读:
    hdu 3652 【数位dp】
    02 -body标签中相关标签
    01-html介绍和head标签
    python 核心编程第九章文件
    python核心编程 第七章 字典,集合 练习
    常用链接
    python核心编程 第七章 字典
    python核心编程 第六章 字符串,元组,列表 字符串元组只读不可变。列表可变。
    python核心编程 第五章 数字
    python读取文件中的路径内容,保存到另外的路径中
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/15225444.html
Copyright © 2020-2023  润新知