Hbase-API增删改查扫描等操作

HBase学习之路——HBase 常用API汇总 前言 今天刚刚过完HBase入门阶段,本来应该周内搞完的,但中途自己的电脑配置太低了以至于虚拟机开个IDEA都卡到爆...好在室友的电脑可用,比预期慢了三天左右完成入门,但学的还算扎实,现就一些常用的程序搞个总结以供以后参考使用。 HBase数据库常用代码与HBase API 一、IDEA连接HBase数据库 1. project配置:IDEA创建mavenproject,... 阅读详情

说明:
这是一个maven工程,需要导入相关配置。

在这里插入图片描述
代码

package com.HbasePractice.hbase;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author lv
 * @version 1.0, 20:44 2019/4/15
 */
public class HbaseTest {

    //配置信息
    public static Configuration conf;

    //获取配置信息
    static {
        //alt + enter
        conf = HBaseConfiguration.create();
    }

    //1.判断一张表是否存在
    public static boolean isExist(String tableName) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //管理表
        HBaseAdmin admin = (HBaseAdmin) connection.getAdmin();

        return admin.tableExists(TableName.valueOf(tableName));
    }
    //2.在hbase集群创建表  create 'user','info','info1'
    // String... 表示可变参数
    public static void createTable(String tableName,String... columnFamilly) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //管理表
        HBaseAdmin admin = (HBaseAdmin) connection.getAdmin();

        //1.表如果存在 请输入其它表名
        if(isExist(tableName)){
            System.out.println("表存在,请输入其它表名");
        }else{
            //2.注意:创建表的话 需要创建一个描述器
            HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(tableName));

            //3.创建列族
            for(String cf:columnFamilly){
                htd.addFamily(new HColumnDescriptor(cf));
            }

            //4.创建表
            admin.createTable(htd);
            System.out.println("表已创建成功!");
        }
    }
    // 3:删除hbase中的表
    public static void deleteTable(String tableName) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //管理表
        HBaseAdmin admin = (HBaseAdmin) connection.getAdmin();

        //1.如果表存在 删除 否则打印不存在
        //需要先指定表不可用 再删除
        if(isExist(tableName)){
            //2.指定不可用,然后再删除
            admin.disableTable(TableName.valueOf(tableName));
            admin.deleteTable(TableName.valueOf(tableName));
        }else{
            System.out.println("表不存在,请重新输入表名!");
        }
    }

    //4.添加数据put 'user','rowkey',''
    public static void addRow(String tableName,String rowkey,String cf,String column,String value) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //拿到表对象
        Table t = connection.getTable(TableName.valueOf(tableName));


        //1.用put方式加入数据
        Put p =  new Put(Bytes.toBytes(rowkey));
        //2.加入数据
        p.addColumn(Bytes.toBytes(cf),Bytes.toBytes(column),Bytes.toBytes(value));
        t.put(p);
    }



    //5.删除表中一行数据
    public static void deleteRow(String tableName,String rowkey,String cf) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //拿到表对象
        Table t = connection.getTable(TableName.valueOf(tableName));

        //1.根据rowkey删除数据
        Delete d = new Delete(Bytes.toBytes(rowkey));
        //2.删除
        t.delete(d);
    }

    //6.删除多行数据
    public static void deleteAll(String tableName,String... rowkeys) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //拿到表对象
        Table t = connection.getTable(TableName.valueOf(tableName));

        //1.把delete封装到集合
        List<Delete> list = new ArrayList<Delete>();
        //2.遍历
        for(String row:rowkeys){
            Delete d = new Delete(Bytes.toBytes(row));
            list.add(d);
        }
        t.delete(list);
    }
    //7.扫面表数据 scan全表扫描
    public static void scanAll(String tableName) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //拿到表对象
        Table t = connection.getTable(TableName.valueOf(tableName));

        //1.实例scan
        Scan s = new Scan();
        //2,拿到Scanner对象
        ResultScanner rs = t.getScanner(s);

        //3.遍历
        for(Result r:rs){
            Cell[] cells = r.rawCells();
            //遍历具体数据
            for(Cell c:cells){
                System.out.println("行键为:" + Bytes.toString(CellUtil.cloneRow(c)));
                System.out.println("列族为:" + Bytes.toString(CellUtil.cloneFamily(c)));
                System.out.println("值为:" + Bytes.toString(CellUtil.cloneValue(c)));
                
            }
        }
    }

    //8.扫描指定的数据
    public static void getRow(String tableName,String rowkey) throws IOException {
        //对表操作需要用HbaseAdmin
        Connection connection = ConnectionFactory.createConnection(conf);
        //拿到表对象
        Table t = connection.getTable(TableName.valueOf(tableName));

        //1.扫描指定数据需要实例Get
        Get g = new Get(Bytes.toBytes(rowkey));
        //2.可加过滤条件
        g.addFamily(Bytes.toBytes("info"));

        Result rs = t.get(g);
        Cell[] cells = rs.rawCells();
        //3.遍历
        //遍历具体数据
        for(Cell c:cells){
            System.out.println("行键为:" + Bytes.toString(CellUtil.cloneRow(c)));
            System.out.println("列族为:" + Bytes.toString(CellUtil.cloneFamily(c)));
            System.out.println("值为:" + Bytes.toString(CellUtil.cloneValue(c)));


        }

    }

    public static void main(String[] args) throws IOException {
//        System.out.println(isExist("emp1"));
//        deleteTable("Hunter");
//        createTable("LeronQ","henshuai","feichangshuai");
//         createTable("LeronQ2","info");
//        deleteTable("LeronQ2");
//                addRow("LeronQ2","101","info","age","18");
//                deleteRow("LeronQ2","101","info");
                   deleteAll("emp","1001","1002r");
    }
}
E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用 测试说明 测试模块数:3 测试模式:配置模式和传输模式 如果没有检测到串口,首先检查是否安装串口驱动CH341SER,下载链接,提取码:vaw2 工作模式 模式(0-3) M2 M1 M0 模式介绍 备注 0 传输模式 1 0 0 串口打开,无线打开,连续透明传输 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 1 RSSI 1 0 1 串口打开,无线打开,RSSI功能打开 模块每100ms输出RSSI强度值 2 测距模式 1 1 0 保留 - 3 配置模式 阅读详情

相关推荐

Ansys Lumerical实战:5步搞定Mach-Zehnder调制器多物理场仿真(附眼图分析技巧)

本文详细介绍了使用Ansys Lumerical进行行波马赫-曾德尔调制器多物理场仿真的完整流程。通过CHARGE、MODE和INTERCONNECT三大模块的协同工作,从电学参数提取、光学射频特性分析到系统级眼图评估,分步解析了高效仿真与性能优化的核心技巧,为硅光调制器设计提供了实战指南。

weixin_29056781的博客 540

java hbase 更新数据_使用终端和Java API对hbase进行增删改查操作

一、实验目的本次实验通过使用终端和Java API对hbase进行增删改查操作,学习非关系型数据库的结构以及如何操作,理解非关系型数据库与关系数据库的对比,掌握如何使用菲关系型数据库hbase。二、实验内容尽可能完成老师给出的内容,做了多少就写多少三、实验思路、结构先在Linux命令行的方式下实现在hbase中建表,增删改查操作然后再使用Elipse利用Java编程实现在hbase中建表,增...

weixin_29923451的博客 678

activemq_CVE-2015-5254_漏洞复现_源码分析

ActiveMQ-CVE-2015-5254

qq_51550750的博客 939

HBASE API

package org.jumore.test; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfig...

LakerHu 238

别再傻傻分不清:PX4、Pixhawk、ArduPilot、APM到底啥关系?一张图给你讲明白

本文全面解析开源飞控领域核心概念,厘清PX4、Pixhawk、ArduPilot与APM的定位与关系。通过硬件平台演进史和飞行控制软件对比,帮助开发者理解开源飞控生态,并提供新项目开发建议与特殊需求考量,助力无人机开发中的明智选择。

weixin_32770423的博客 408

如何在离线的电脑上部署一个本地Deepseek(使用ollama)

例如,如果您的显卡显存为 16GB,官方推荐使用 32b 大小的 DeepSeek 模型。请根据您的硬件配置选择适合的模型版本,以获得最佳性能。首先我们需要将ollama和chatbox的安装包,Deepseek模型文件通过U盘或者光盘的形式导入到这台不能联网的电脑上。按照时间排序,找到最大的那个文件,就是gguf格式的模型,复制出来,改名为qwen2.5-coder0.5b.gguf。:基于开源模型(如 QWEN 和 LLAMA)微调,参数量从 1.5B 到 70B 不等,适合本地硬件部署。

qq_41854911的博客 1万+

HBase基本API(java)操作(增删改查)

HBase基本API(java)操作(增删改查)

鸟哥哥的专栏 4482

python利用IQR方法与3σ方法进行异常值处理(含代码)

python利用IQR方法进行异常值处理

weixin_46713695的博客 2031

Hbase常用JAVA API

<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <exclusions> <exclusi...

spiderA的专栏 240

英飞凌 AURIX TC3XX 系列单片机的链接文件

这篇介绍英飞凌 AURIX TC3XX 系列单片机的链接文件,主要是针对使用 SOTA 功能如何修改链接文件,完整地实现 SOTA 功能

大橙子的博客 4385

STM32开发 -- GPIO详解

之前有简单讲过GPIO工作模式和寄存器,还是有点没搞明白。这次需要全方位的看一下了。 一、数据手册 1、STM32F105RC引脚说明 可知:STM32F105RC 一共有4组IO口 一共16X3+3=51个IO GPIOA0~A15 GPIOB0~B15 GPIOC0~C15 GPIOD0~D2 2、程序定义 GPIO端口号 STM32F1...

不积跬步,无以至千里 5万+

通过Java Api与HBase交互(转)

/** *<span>HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api。</span> * **/ import java.io.IO...

chuteng3602的博客 117

基于STM32的智能浇花系统毕业设计(全部资料)

摘要:本文设计了一种基于STM32单片机的智能浇花系统,集成了环境温湿度检测、土壤温湿度监测、LCD显示、Wi-Fi联网及手机APP远程控制等功能。系统通过传感器实时采集环境参数,自动控制水泵工作实现智能灌溉,同时支持用户通过手机APP远程监控和调节。论文详细阐述了硬件选型、软件设计及系统测试过程,验证了系统的稳定性和实用性。该设计为家庭园艺提供了智能化解决方案,具有节水高效、操作便捷等特点。关键词:STM32;智能灌溉;远程控制;环境监测;Wi-Fi通信。

3254968421的博客 1194

hbase的增删改查

package hbase.com.cn.hbase; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.hadoop.conf.Config...

zwmonk的博客 412

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HBase(2) Java 操作 HBase 教程

一、简介 在上一篇文章HBase 基础入门中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法。 那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进行对话了。 所幸的是,HBase 本身就是用 Java 编写的,天生自带了 Java 原生API。 我们可...

zhy_Learn的博客 87

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Hbase入门API操作和 shell操作

package cn.itcast.bigdata.hbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDesc

a2615381的专栏 1498

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

HBase基础的Shell命令及JavaAPI测试

目录一、基本使用进入Hbase shell查看帮助命令1.创建表2.插入数据到表3.扫描查看表数据4.查看表结构5.更新指定字段的数据6.查看“指定行”或“指定列簇:列”的数据7.统计表数据行数8.删除数据9.清空表数据10.删除表11.变更表信息 将 info 列族中的数据存放 3 个版本 一、基本使用 进入Hbase shell [root@master ~]# hbase shell 查看帮助命令 查看帮助 hbase(main):001:0> help 查看当前数据库中有哪些表 hbas

糊里糊涂走进大数据的小菜鸡 856

HBase API

HBase-API操作、NameSpace、DDL、DML语句

功不唐捐,玉汝于成 1653

hbase DDL(创建删除命名空间、表) DML(增改 查 以及 删除 DeleteFamily DeleteColumn Delete) API

1.2 创建命名空间、创建表 2.2 插入数据 注:执行删除整个RowKey数据,所添加的标记,作用范围:当前列族小于等于标记时间戳的数据

不是一枚开发 5万+

在 HBase 中,如何通过 Java API 进行数据的增删改查操作?

在 HBase 中,可以通过 Java API 进行数据的增删改查操作。

weixin_45422672的博客 404

几个简单的HBase的Java程序(待续)

请先创建一张表,命令如下:

Kevin的专栏 985

hbase的javaAPI操作

连接配置 导入依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope>

qq_41258650的博客 593

HBase的几个实示例(二)

1 开发环境 在进行Hbase开发前,需要安装JDK、Hadoop和Hbase,选择一款合适的开发IDE,具体安装方法就不介绍了,我的开发环境: 操作系统:Ubuntu Java版本:jdk1.8 Hadoop版本:hadoop-2.6.0 HBase版本:hbase-1.2.0 Ecipse版本:Eclipse 使用Maven构建项目,在pom.xml中添加hbase...

ddkny60408的专栏 227

hbase使用

[toc] Hbase 常用shell操作 list #查看default中的表 list # 查看命名空间 list_namespace #查看命名空间表 list_namespace_tables 'hbase' create ...

chuntongshen5917的博客 200

Apache HBase 2.x JavaAPI操作(上)

Hbase 1.x版本和2.x版本,虽然进行了大量的重构和优化,一些API也已经能抛弃,单核心API没有改多少。 本处:HBASE 2.0.5版本 1.测试准备 1)获取HBASE配置对象 Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","mycat01,mycat02,m...

猫君之上的博客 2893

Hbase CURD

package com.mao.hbase; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; import org.j...

mthinking 276
上一篇: (1) 李航《统计学习方法》基于Python实现——最小二乘法正则项
下一篇: (2) 李航《统计学习方法》基于Python实现——感知机
奥卡姆的剃刀
博客等级 码龄11年 2万+粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值