zoukankan      html  css  js  c++  java
  • hbase java api 两种方式

    NoSQL Hbase JAVA API

    实例一

    导入架包:

    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <version>1.3.5</version>
    </dependency>
    

    首先在java中新建一个HbaseService类

    步骤一:添加配置

    public static Connection getConnection() throws IOException {
        Configuration configuration = HBaseConfiguration.create();
        Connection connection= ConnectionFactory.createConnection(configuration);
        return connection;
    }
    

    步骤二:快速执行方法

    public static void main(String[] args) throws IOException{
        //创建一张表
        createTable();
        //向表中插入数据
        insertTable();
        //查询表中对应的数据
        searchTable();
        //查询所有
        searchAll();
    }
    

    步骤三:查询所有

    private static void searchAll() throws IOException{
        //scan 'emps',FILTER=>ValueFilter(=,'substring:c')
        Table emps = getConnection().getTable(TableName.valueOf("emps"));
        Scan scan=new Scan();
        FilterList lst = new FilterList();
        ValueFilter vf = new ValueFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("c"));
        lst.addFilter(vf);
        scan.setFilter(lst);
        ResultScanner scanner = emps.getScanner(new Scan());//ResultSet=>Result
        Iterator<Result> rs = scanner.iterator();
        while (rs.hasNext()){
            Result row = rs.next();
            //可以取出多个数值
            System.out.println(row.getValue("base".getBytes(),"name".getBytes()));
    
        }
    }
    

    步骤四:查询表中对应的数据

    private static void searchTable() throws IOException{
        //get 'emps','001','base:name'
        Table emps = getConnection().getTable(TableName.valueOf("emps"));
        Get get = new Get("001".getBytes());
        Result result = emps.get(get);
        result.getValue("base".getBytes(),"name".getBytes());
        String str =Bytes.toString(result.getValue("base".getBytes(),"name".getBytes()));
        System.out.println(str);
    }
    

    步骤五:向表中插入数据

    private static void insertTable() throws IOException{
        //put 'emps','001','base:name','value'
        Table emps=getConnection().getTable(TableName.valueOf("emps"));
        //添加001
        Put put = new Put("001".getBytes());
        put.addColumn("base".getBytes(),"name".getBytes(),"cm".getBytes());
        emps.put(put);
    }
    

    步骤六:创建一张表格

    private static void createTable() throws IOException{
        Admin admin=getConnection().getAdmin();
        //给个表名
        HTableDescriptor table=new HTableDescriptor(TableName.valueOf("emps"));
       //创建一个列族
        HColumnDescriptor base=new HColumnDescriptor("base");
        //表上加列族
        table.addFamily(base);
        admin.createTable(table);
    }
    

    步骤七:我们打包前可以修改包名:

    进入pom.xml:在<build>下一行添加<filalName>包名<filalName>

    步骤八:进入Linux执行下面命令:

    [root@head42 ~]# java -cp hb.jar:/opt/hbase-1.3.5/lib/* com.njbdqn.services.HbaseService

    实例二

    步骤一:导入架包:

    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <version>1.3.5</version>
    </dependency>
    

    步骤二:编写java代码

    public class hbase {
        public static void main(String[] args) throws IOException {
            createTable();
            listTables();
            //找配置文件
            Configuration conf = HBaseConfiguration.create();
            conf.set("hbase.zookeeper.quorum","localhost");
            //设置端口号
            conf.set("hbase.zookeeper.property.clientPort","2181");
            Connection connection= ConnectionFactory.createConnection(conf);
            Admin admin=connection.getAdmin();
            //拿到表的名字类型数组,进行for循环
            for (TableName name:admin.listTableNames()) {
                System.out.println(name.toString());
            }
            connection.close();
        }
    

    步骤三:以下是开始打包命令:

     

    步骤四:运行并形成一个包:

    步骤五:进入Linux执行:[root@head42 ~]# java -cp hbase-java.jar cn.kgc.hbase

    (hbase-java.jar:为导入的架包 cn.kgc.hbase:类名地址)

    执行成功如下:

    这样就可以了哈!

  • 相关阅读:
    《如何评价Kaiming He的Momentum Contrast for Unsupervised?》
    多伦多大学&NVIDIA最新成果:图像标注速度提升10倍!
    GitHub超全机器学习工程师成长路线图,开源两日收获3700+Star!
    上Github,北大、清华、浙大、中科大4大名校课程在线学,加星总数超1.8万
    使用Python+OpenCV进行图像处理(二)| 视觉入门
    重磅!刷新两项世界纪录的腾讯优图人脸检测算法DSFD开源了!
    巴黎不哭!十亿数据精准扫描,帮卡西莫多重新找回他的玫瑰花窗
    机器学习算法系列:FM分解机
    百道Python面试题实现,搞定Python编程就靠它
    学习GAN必须阅读的10篇论文
  • 原文地址:https://www.cnblogs.com/tudousiya/p/11234031.html
Copyright © 2011-2022 走看看