iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >java操作hbase api
  • 867
分享到

java操作hbase api

2024-04-02 19:04:59 867人浏览 独家记忆
摘要

需要引入的jar包(这里的jar包括HBase,Hive的UDF,hive的jdbc连接)java源码package com.hbase.jdbc; import java.util.

  1. 需要引入的jar包(这里的jar包括HBaseHive的UDF,hive的jdbc连接)

    java操作hbase api

  2. java源码

package com.hbase.jdbc;

import java.util.ArrayList;
import java.util.List;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
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.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.util.Bytes;

public class HBaseOperate {
    public static Configuration conf;

    
    static{
        conf = HBaseConfiguration.create();
        conf.set("hbase.master", "192.168.1.100:600000");  
        conf.set("hbase.ZooKeeper.quorum", "192.168.192.137"); 
    }
    
    public static void main(String args[]) throws Exception{
        String[] cols = {"age","sex","address"};
        String tableName = "userInfo3";
//        new HBaseOperate().createTable(tableName, cols);
        String[] columnValue = {"北京","1","16",};
        String[] column = {"baseAddress","baseSex","baseAge"};
//        new HBaseOperate().listTable();
//        new HBaseOperate().insertData(tableName,"doubi", column, columnValue);
//        new HBaseOperate().dropTable(tableName);
//        new HBaseOperate().getRow(tableName, "wj");
//        new HBaseOperate().deleteRow(tableName, "wj");
//        new HBaseOperate().getAllRow(tableName);
//        new HBaseOperate().getRowByCondition(tableName);
        new HBaseOperate().getRowByManyCondition(tableName);
    }
    
    
    public void createTable(String tableName,String cols[]) throws Exception{
        HBaseAdmin ha = new HBaseAdmin(conf);
        if(ha.tableExists(tableName)){
            System.out.println("表已经存在");
        }else{
            HTableDescriptor table = new HTableDescriptor(TableName.valueOf(tableName));
            for(String c: cols){
                HColumnDescriptor col=new HColumnDescriptor(c);//列簇名
                table.addFamily(col);
            }
            
            ha.createTable(table);
            ha.close();
            System.out.println("创建表成功!");
        }
    }
    
    
    public void dropTable(String tableName) throws Exception{
        System.out.println("start drop table!");
        HBaseAdmin ha = new HBaseAdmin(conf);
        ha.disableTable(tableName);
        ha.deleteTable(tableName);
        System.out.println("drop table success!");
    }
    
    
    public void listTable() throws Exception{
        HBaseAdmin ha = new HBaseAdmin(conf);
        TableName[] tableNames = ha.listTableNames();
        for(int i = 0; i < tableNames.length; i ++){
            System.out.println(tableNames[i].getNameAsString());
        }
    }
    
    
    public void insertData(String tableName, String rowKey, String[] column, 
                            String[] columnValue) throws Exception{
        System.out.println("start insert table!");
        HTable table = new HTable(conf, tableName);
        HTableDescriptor hd = table.getTableDescriptor();
        HColumnDescriptor[] hcds = hd.getColumnFamilies();//最后一列开始
        Put put = new Put(rowKey.getBytes());
        
        for(int i = 0; i < hcds.length; i ++){
            HColumnDescriptor hcd = hcds[i];
            put.add(hcd.getName(), column[i].getBytes(), columnValue[i].getBytes());
            //family column value
        }
        
        table.put(put);
        System.out.println("end insert table!");
    }
    
    
    public void getRow(String tableName, String key) throws Exception{
        System.out.println("start get row!");
        HTable table = new HTable(conf, tableName);
        Get get = new Get(key.getBytes());
        
        Result result = table.get(get);
        for(Cell cell : result.rawCells()){
            System.out.println("row family++++++ " + 
                new String(CellUtil.cloneFamily(cell)) + 
                "  row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + 
                "   row value ++++++" + new String(CellUtil.cloneValue(cell)));
        }
        
        System.out.println("get row end!");
    }
    
    
    public void deleteRow(String tableName, String key) throws Exception{
        System.out.println("delete row start!");
        HTable table =new HTable(conf, tableName);
        Delete d1 = new Delete(key.getBytes());
        table.delete(d1);
        System.out.println("delete row end!");
    }
    
    
    public void getAllRow(String tableName) throws Exception{
        System.out.println("get all row start!");
        HTable table = new HTable(conf, tableName);
        Scan s = new Scan();
        ResultScanner rs = table.getScanner(s);
        for(Result result : rs){
            for(Cell cell : result.rawCells()){
                System.out.println("row key++++++" + new String(CellUtil.cloneRow(cell)) +
                 " row family++++++ " + new String(CellUtil.cloneFamily(cell)) + 
                 "   row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + 
                 "   row value ++++++" + new String(CellUtil.cloneValue(cell)));
            }
        }
        System.out.println("get all row end");
    }
    
    
    public void getRowByCondition(String tableName) throws Exception{
        System.out.println("begin query!");
        HTable table = new HTable(conf, tableName);
        Filter filter = new SingleColumnValueFilter(Bytes.toBytes("sex"), Bytes.toBytes("baseAge"), CompareOp.EQUAL, Bytes.toBytes("100")); //family column 比较符号 比较值
        Scan s = new Scan();  
        s.setFilter(filter);  
        
        ResultScanner rs = table.getScanner(s);  
        
        for(Result result : rs){
            for(Cell cell : result.rawCells()){
                System.out.println("row key++++++" + new String(CellUtil.cloneRow(cell)) + 
                " row family++++++ " + new String(CellUtil.cloneFamily(cell)) + 
                "   row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + 
                "   row value ++++++" + new String(CellUtil.cloneValue(cell)));
            }
        } 

        System.out.println("end query!");
    }
    
    
    public void getRowByManyCondition(String tableName) throws Exception{
        System.out.println("begin query!");
        HTable table = new HTable(conf, tableName);
        Filter filterSex = new SingleColumnValueFilter(Bytes.toBytes("sex"), 
            Bytes.toBytes("baseAge"), CompareOp.EQUAL, Bytes.toBytes("16")); 
            //family column 比较符号 比较值
        Filter filterAge = new SingleColumnValueFilter(Bytes.toBytes("age"), 
            Bytes.toBytes("baseSex"), CompareOp.EQUAL, Bytes.toBytes("1")); 
            //family column 比较符号 比较值
        
        List<Filter> filterList = new ArrayList<Filter>();
        filterList.add(filterAge);
        filterList.add(filterSex);
        
        Scan s = new Scan();  
        FilterList filterListS = new FilterList(filterList);  
        s.setFilter(filterListS);
        
        //可以设置查询结果的开始 和 结束位置(针对的是key值)
        s.setStartRow("wj".getBytes());
        s.setStopRow("wj".getBytes());
        
        ResultScanner rs = table.getScanner(s);  
        for(Result result : rs){
            for(Cell cell : result.rawCells()){
                System.out.println("row key++++++" + new String(CellUtil.cloneRow(cell)) +
                 " row family++++++ " + new String(CellUtil.cloneFamily(cell)) + 
                 "   row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + 
                 "   row value ++++++" + new String(CellUtil.cloneValue(cell)));
            }
        } 
        
        System.out.println("end query!");
    }
}

 

 

 

 

 

 

 

 

 

 

 

您可能感兴趣的文档:

--结束END--

本文标题: java操作hbase api

本文链接: https://www.lsjlt.com/news/38185.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • hbase 2.0.2 java api怎么用
    这篇文章将为大家详细讲解有关hbase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hbase.test;import ja...
    99+
    2023-06-02
  • HBase shell如何操作
    小编给大家分享一下HBase shell如何操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!进入hbase Shell[root@test31 ~]# hbas...
    99+
    2023-06-03
  • Hbase Python 操作准备
    网上的教程是Java操作hbase的实例,我这里使用python,所以之后的文章都是通过thrift API操作hbase 1、安装apache thrift(根据自己系统选择安装) http://thrift.apac...
    99+
    2023-01-31
    操作 Hbase Python
  • hbase访问方式之java api
    Hbase的访问方式Native Java API:最常规和高效的访问方式;HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用;Thrift Gateway:利用Thrift序列化技术,支持C++,PHP,...
    99+
    2023-05-31
    hbase java api
  • Java 通过API操作GraphQL
    目录引入依赖Java中使用GraphQL的API 无参数简单查询带参数简单查询GraphQL可以通过Java的API来实现数据的查询,通过特定的SDL查询语句,获取特定的查询数据。相...
    99+
    2024-04-02
  • Java API如何操作Hive
    这篇文章给大家分享的是有关Java API如何操作Hive的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。环境:   IDEA2017.3+Maven-3.3.9+Hive1.1.0 pom.x...
    99+
    2023-06-02
  • Java 8:Stream API 流式操作
    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Java 8:Stream API Java 8 中的 Stream API 是一组...
    99+
    2023-08-16
    java python
  • hbase+python安装部署及操作
    本文总结下最近在用python+spark+hbase安装操作中的一些问题。 hbase安装 hbase配置 spark配置hbase hbase配置python hbase安装+hbase配置 安装流程可借鉴此处,同理s...
    99+
    2023-01-31
    操作 hbase python
  • Java API操作Hdfs的示例详解
    目录1.遍历当前目录下所有文件与文件夹2.遍历所有文件3.创建文件夹4.删除文件夹5.上传文件6.下载文件1.遍历当前目录下所有文件与文件夹 可以使用listStatus方法实现上述...
    99+
    2024-04-02
  • Java API操作HDFS方法是什么
    这篇“Java API操作HDFS方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java AP...
    99+
    2023-07-05
  • 如何使用phoenix操作hbase数据)
    这篇文章将为大家详细讲解有关如何使用phoenix操作hbase数据),小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。下载安装phoenix(版本与hbase对应)[root@node1 ~]# wget ...
    99+
    2023-06-02
  • Java如何操作MongoDB常用API文档
    目录Java操作MongoDB常用API文档1.查询指定字段2.按条件查询3.对查询结果排序4.获取满足条件的前n条数据Java使用MongoDB数据库相关API小记MongDB数据...
    99+
    2024-04-02
  • Java elasticSearch-api的具体操作步骤讲解
    目录1.环境准备2.针对索引操作3.针对doc操作(增删改)4.针对doc操作(查)5.java-api6.spring-data-elasticsearch使用步骤 1.环境准备...
    99+
    2024-04-02
  • 实验三:熟悉常用的HBase操作
    实验环境: (1)操作系统:Linux(建议 Ubuntu 16.04 或 Ubuntu 18.04)。 (2)Hadoop 版本:3.1.3。 (3)HBase 版本:2.2.2。 (4)JDK 版...
    99+
    2023-10-23
    hbase hadoop 大数据
  • java的Stream API终端操作示例分析
    这篇文章主要介绍“java的Stream API终端操作示例分析”,在日常操作中,相信很多人在java的Stream API终端操作示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”j...
    99+
    2023-06-29
  • Prometheus监控实战篇Nginx、Hbase操作详解
    目录一、Prometheus监控Nginx1、监控Nginx相关插件下载地址2、编译Nginx2.1 下载 nginx-release 并解压2.2 解压 Nginx-module-...
    99+
    2024-04-02
  • 通过DBeaver连接Phoenix操作hbase的方法
    前言 本文介绍常用一种通用数据库工具Dbeaver,DBeaver 可通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaD...
    99+
    2024-04-02
  • HBase支持哪些数据模型的操作
    HBase支持以下数据模型的操作: 列族数据模型:HBase使用列族(Column Family)来组织数据,每个列族包含多个列...
    99+
    2024-03-11
    HBase
  • HBase内置过滤器java api的知识点总结
    这篇文章主要介绍“HBase内置过滤器java api的知识点总结”,在日常操作中,相信很多人在HBase内置过滤器java api的知识点总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HBase内置过滤...
    99+
    2023-06-19
  • Java日期相关API的基本操作总结
    目录前言JDK8之前Date对象的使用格式化日期SimpleDateFormat类的使用JDK8之后LocalDate 、LocalTime 、LocalDateTime的使用格式化...
    99+
    2022-11-21
    Java日期API操作 Java日期API
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作