• Flink实例(124):connector(二十一)hbase 读写 (二)


    package com.caimou.utils;
    
    import org.apache.hadoop.conf.Configuration;
    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.*;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import java.io.IOException;
    import java.util.Map;
    import java.util.Set;
    
    
    public class HbaseUtils2 {
        private static Admin admin = null;
        private static Connection conn = null;
        static{
            // 创建hbase配置对象
            Configuration conf = HBaseConfiguration.create();
            conf.set("hbase.rootdir","hdfs://192.168.1.122:9820/hbase");
            //使用eclipse时必须添加这个,否则无法定位
            conf.set("hbase.zookeeper.quorum","192.168.1.122");
            conf.set("hbase.client.scanner.timeout.period", "600000");
            conf.set("hbase.rpc.timeout", "600000");
            try {
                conn = ConnectionFactory.createConnection(conf);
                // 得到管理程序
                admin = conn.getAdmin();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
        /**
         * 创建表
         public  static void createTable(String tabName,String famliyname) throws Exception {
         HTableDescriptor tab = new HTableDescriptor(tabName);
         // 添加列族,每个表至少有一个列族
         HColumnDescriptor colDesc = new HColumnDescriptor(famliyname);
         tab.addFamily(colDesc);
         // 创建表
         admin.createTable(tab);
         System.out.println("over");
         }
         */
    
    
        /**
         * 插入数据,create "testinfo","time"
         * create "product","info"
         * create "userinfo","info"
         */
        public static void put(String tablename, String rowkey, String famliyname, Map<String,String> datamap) throws Exception {
            Table table = conn.getTable(TableName.valueOf(tablename));
            // 将字符串转换成byte[]
            byte[] rowkeybyte = Bytes.toBytes(rowkey);
            Put put = new Put(rowkeybyte);
            if(datamap != null){
                Set<Map.Entry<String,String>> set = datamap.entrySet();
                for(Map.Entry<String,String> entry : set){
                    String key = entry.getKey();
                    Object value = entry.getValue();
                    put.addColumn(Bytes.toBytes(famliyname), Bytes.toBytes(key), Bytes.toBytes(value+""));
                }
            }
            table.put(put);
            table.close();
            System.out.println("ok");
        }
    
        /**
         * ܱ获取数据,create "testinfo","time"
         */
        public static String getdata(String tablename, String rowkey, String famliyname,String colum) throws Exception {
            Table table = conn.getTable(TableName.valueOf(tablename));
            // 将字符串转换成byte[]
            byte[] rowkeybyte = Bytes.toBytes(rowkey);
            Get get = new Get(rowkeybyte);
            Result result =table.get(get);
            byte[] resultbytes = result.getValue(famliyname.getBytes(),colum.getBytes());
            if(resultbytes == null){
                return null;
            }
    
            return new String(resultbytes);
        }
    
        /**
         * 插入数据,create "testinfo","time"
         */
        public static void putdata(String tablename, String rowkey, String famliyname,String colum,String data) throws Exception {
            Table table = conn.getTable(TableName.valueOf(tablename));
            Put put = new Put(rowkey.getBytes());
            put.addColumn(famliyname.getBytes(),colum.getBytes(),data.getBytes());
            table.put(put);
        }
    
        public static void main(String[] args) throws Exception {
    //        System.setProperty("hadoop.home.dir","E:\soft\hadoop-2.6.0-cdh5.5.1\hadoop-2.6.0-cdh5.5.1");
    //        createTable("testinfo","time");
            putdata("testinfo", "1", "time","info1","ty");
    //        Map<String,String> datamap = new HashMap<String,String>();;
    //        datamap.put("info1","ty1");
    //        datamap.put("info2","ty2");
    //        put("testinfo", "2", "time",datamap);
    
            String result = getdata("testinfo","1", "time","info1");
            System.out.println(result);
    
        }
    
    
    }
  • 相关阅读:
    常见 Web 安全攻防总结
    传统方式接口测试返回值json验证
    Springboot中RestTemplate -- 用更优雅的方式发HTTP请求
    mock简单的json返回
    MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数
    MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)
    MySQL数据库学习笔记(三)----基本的SQL语句
    MySQL数据库学习笔记(一)----MySQL 5.6.21的安装和配置(setup版)
    python实现广度优先搜索
    php递归
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14352328.html
Copyright © 2020-2023  润新知