zoukankan      html  css  js  c++  java
  • 7 Hbase put方式插入数据

    package com.hikvision.hbase.vertify.test;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.IOException;
    import java.io.InterruptedIOException;
    
    /**
     */
    public class HbasePutTest {
        public static final Logger LOGGER= LoggerFactory.getLogger(HbasePutTest.class);
        public final static String HBASE_MASTER = "hbase.master";
        public final static String HBASE_ZOOKEEPER_PORT = "hbase.zookeeper.property.clientPort";
        public final static String HBASE_ZOOKEEPER_QUORUM = "hbase.zookeeper.quorum";
        public static HTable htable;
        public static void main(String[] args) {
            String hbaseMaster="10.17.139.121:60010";
            String zookeeperPort="2181";
            String zookeeperQuorum="10.17.139.121";
            String tableName="TestTest";
            Configuration config= HBaseConfiguration.create();
            config.set(HBASE_MASTER, hbaseMaster);
            config.set(HBASE_ZOOKEEPER_PORT, zookeeperPort);
            config.set(HBASE_ZOOKEEPER_QUORUM, zookeeperQuorum);
    
            try {
                 htable = new HTable(config, tableName);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            if(null==htable){
                LOGGER.error("htable is null");
                System.exit(-1);
            }
    
            for(int i=0;i<11000;i++){
                String rowkey="";
                if(i<1000) {
                    rowkey = "201609000"+i;
                }else if(i<2000){
                    rowkey = "201609001"+i;
                }
                else if(i<3000){
                    rowkey = "201609002"+i;
                }
                else if(i<4000){
                    rowkey = "201609003"+i;
                }
                else if(i<5000){
                    rowkey = "201609004"+i;
                }
                else if(i<6000){
                    rowkey = "201609005"+i;
                }
                else if(i<7000){
                    rowkey = "201609006"+i;
                }
                else if(i<8000){
                    rowkey = "201609007"+i;
                }
                else if(i<9000){
                    rowkey = "201609008"+i;
                }
                else if(i<10000){
                    rowkey = "201609009"+i;
                }else if(i<11000){
                    rowkey = "201609010"+i;
                }
                long ts=System.currentTimeMillis();
                String family="info";
                String column=""+i;
                int value=i;
                putDataToTable(rowkey,ts,family,column,value);
                if(0==i%1000){
                    LOGGER.info("已经加载数据 {} 条",i+1);
                }
    
            }
            LOGGER.info("已经加载数据 {} 条",11000);
        }
        /**
         * @Description:往表中插入数据
         * @param rowkey
         * @param ts
         * @param family
         * @param column
         * @param value void:
         */
        public static void putDataToTable(String rowkey, long ts, String family, String column, int value) {
            Put put = new Put(Bytes.toBytes(rowkey), ts);
            put.addColumn(Bytes.toBytes(family), Bytes.toBytes(column), Bytes.toBytes(value));
            try {
                htable.put(put);
            } catch (RetriesExhaustedWithDetailsException e) {
                e.printStackTrace();
            } catch (InterruptedIOException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * @Description:往表中插入数据
         * @param rowkey
         * @param ts
         * @param family
         * @param column
         * @param value void:
         */
        public static void putDataToTable(String rowkey, long ts, String family, String column, String value) {
            Put put = new Put(Bytes.toBytes(rowkey), ts);
            put.add(Bytes.toBytes(family), Bytes.toBytes(column), Bytes.toBytes(value));
            try {
                htable.put(put);
            } catch (RetriesExhaustedWithDetailsException e) {
                e.printStackTrace();
            } catch (InterruptedIOException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * @Description:从表中查询数据
         * @param rowkey
         * @param family
         * @param column
         * @return Result:
         */
        public static Result getDataFromTable(String rowkey, String family, String column) {
            Get get = new Get(Bytes.toBytes(rowkey));
            get.addColumn(Bytes.toBytes(family), Bytes.toBytes(column));
            Result dbresult = null;
            try {
                dbresult = htable.get(get);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return dbresult;
        }
    
        /**
         * @Description:从表中查询数据
         * @param rowkey
         * @param family
         * @param column
         * @return Result:
         */
        public static Result getDataFromTable(String rowkey, String family, String... column) {
            Get get = new Get(Bytes.toBytes(rowkey));
            for (String string : column) {
                get.addColumn(Bytes.toBytes(family), Bytes.toBytes(string));
            }
            Result dbresult = null;
            try {
                dbresult = htable.get(get);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return dbresult;
        }
    }
  • 相关阅读:
    lix
    docker-desktop: error during connect
    安装Docker Desktop报错WSL 2 installation is incomplete.
    索引二倒排索引和正排索引
    公众号资料分享
    docker使用物理机gpu运行模型
    使用arthas定位java问题
    pytorch设置gpu
    pytorch模型初始化
    【转】OpenGL图形渲染管线、VBO、VAO、EBO、 TBO概念及用例
  • 原文地址:https://www.cnblogs.com/yangh2016/p/5995841.html
Copyright © 2011-2022 走看看