HBase 1.1.2 Java 客户端 api(hbase 1.0 增删改查,建表、删表等)

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

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;

/**
 * Created by xuemin on 15/9/28.
 */
public class HBaseTest {


    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;


    public static void main(String[] args) throws IOException {
        createTable("t2",new String[]{"cf1","cf2"});
        insterRow("t2", "rw1", "cf1", "q1", "val1");
        getData("t2", "rw1", "cf1", "q1");
        scanData("t2", "rw1", "rw2");
        deleRow("t2","rw1","cf1","q1");
        deleteTable("t2");
    }

    //初始化链接
    public static void init(){
        configuration = HBaseConfiguration.create();
        configuration.set("hbase.zookeeper.quorum","10.10.3.181,10.10.3.182,10.10.3.183");
        configuration.set("hbase.zookeeper.property.clientPort","2181");
        configuration.set("zookeeper.znode.parent","/hbase");

        try {
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //关闭连接
    public static  void close(){
        try {
            if(null != admin)
                admin.close();
            if(null != connection)
                connection.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    //建表
    public static void createTable(String tableNmae,String[] cols) throws IOException {

        init();
        TableName tableName = TableName.valueOf(tableNmae);

        if(admin.tableExists(tableName)){
            System.out.println("talbe is exists!");
        }else {
            HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);
            for(String col:cols){
                HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(col);
                hTableDescriptor.addFamily(hColumnDescriptor);
            }
            admin.createTable(hTableDescriptor);
        }
        close();
    }

    //删表
    public static void deleteTable(String tableName) throws IOException {
        init();
        TableName tn = TableName.valueOf(tableName);
        if (admin.tableExists(tn)) {
            admin.disableTable(tn);
            admin.deleteTable(tn);
        }
        close();
    }

    //查看已有表
    public static void listTables() throws IOException {
        init();
        HTableDescriptor hTableDescriptors[] = admin.listTables();
        for(HTableDescriptor hTableDescriptor :hTableDescriptors){
            System.out.println(hTableDescriptor.getNameAsString());
        }
        close();
    }

    //插入数据
    public static void insterRow(String tableName,String rowkey,String colFamily,String col,String val) throws IOException {
        init();
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(Bytes.toBytes(rowkey));
        put.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col), Bytes.toBytes(val));
        table.put(put);

        //批量插入
       /* List<Put> putList = new ArrayList<Put>();
        puts.add(put);
        table.put(putList);*/
        table.close();
        close();
    }

    //删除数据
    public static void deleRow(String tableName,String rowkey,String colFamily,String col) throws IOException {
        init();
        Table table = connection.getTable(TableName.valueOf(tableName));
        Delete delete = new Delete(Bytes.toBytes(rowkey));
        //删除指定列族
        //delete.addFamily(Bytes.toBytes(colFamily));
        //删除指定列
        //delete.addColumn(Bytes.toBytes(colFamily),Bytes.toBytes(col));
        table.delete(delete);
        //批量删除
       /* List<Delete> deleteList = new ArrayList<Delete>();
        deleteList.add(delete);
        table.delete(deleteList);*/
        table.close();
        close();
    }

    //根据rowkey查找数据
    public static void getData(String tableName,String rowkey,String colFamily,String col)throws  IOException{
        init();
        Table table = connection.getTable(TableName.valueOf(tableName));
        Get get = new Get(Bytes.toBytes(rowkey));
        //获取指定列族数据
        //get.addFamily(Bytes.toBytes(colFamily));
        //获取指定列数据
        //get.addColumn(Bytes.toBytes(colFamily),Bytes.toBytes(col));
        Result result = table.get(get);

        showCell(result);
        table.close();
        close();
    }

    //格式化输出
    public static void showCell(Result result){
        Cell[] cells = result.rawCells();
        for(Cell cell:cells){
            System.out.println("RowName:"+new String(CellUtil.cloneRow(cell))+" ");
            System.out.println("Timetamp:"+cell.getTimestamp()+" ");
            System.out.println("column Family:"+new String(CellUtil.cloneFamily(cell))+" ");
            System.out.println("row Name:"+new String(CellUtil.cloneQualifier(cell))+" ");
            System.out.println("value:"+new String(CellUtil.cloneValue(cell))+" ");
        }
    }

    //批量查找数据
    public static void scanData(String tableName,String startRow,String stopRow)throws IOException{
        init();
        Table table = connection.getTable(TableName.valueOf(tableName));
        Scan scan = new Scan();
        //scan.setStartRow(Bytes.toBytes(startRow));
        //scan.setStopRow(Bytes.toBytes(stopRow));
        ResultScanner resultScanner = table.getScanner(scan);
        for(Result result : resultScanner){
            showCell(result);
        }
        table.close();
        close();
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>td</groupId>
    <artifactId>hbase_test</artifactId>
    <version>1.0</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <!-- <hadoop.version>2.6.0-cdh5.4.5</hadoop.version>-->
        <hbase.version>1.1.2</hbase.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>${hbase.version}</version>
        </dependency>
    </dependencies>

</project>


HBase 开发:使用Java操作HBase 第1关:创建表 HBase 开发:使用Java操作HBase 第1关:创建表 阅读详情

相关推荐

Educoder HBase实战:Java API操作全流程详解(从建表到删表)

本文详细介绍了在Educoder平台上使用Java API操作HBase的全流程,从环境配置、表结构设计到数据操作和性能优化。通过实战案例演示建表、数据写入、复杂查询及表删除等核心操作,帮助开发者快速掌握HBase的Java API使用技巧,提升大数据应用开发效率。

weixin_29053067的博客 235

flink1.14 sql基础语法(二) flink sql表定义详解

flink1.14 sql基础语法(二) flink sql表定义详解

qq_44665283的博客 4156

HBase Java API

本文介绍了使用Java API操作HBase数据库的基本方法。首先搭建HBase集群环境并创建Maven项目,添加HBase依赖。通过Connection对象建立与集群的长连接,并演示了Admin管理操作,包括创建/删除命名空间、判断表存在性、创建/删除表等核心功能。文章详细展示了数据操作API,包括put添加数据、get查询单条数据、scan范围扫描以及delete删除数据的方法实现,每个操作都包含参数校验和资源关闭处理。测试案例验证了各API的正确性,为开发者提供了完整的HBase Java API操作

m0_62491477的博客 1248

深入理解hbase(一)hbase中java客户端详解

hbase中java客户端详解

qq_44665283的博客 2335

B0505S选型

    使用B0505S-1W已经有一段时间了,一直以来使用的是下面的电路,该电路摘自《CAN总线嵌入式开发——从入门到实战》一书。 参考金升阳的用户手册,手册上写道: 为了确保该模块能够高效可靠的工作,使用时,其输出最小负载不能小于额定负载的10%。若您所需功率确实较小,请在输出端并联一个电阻(电阻消耗功率与实际使用功率之和大于等于10%的额定功率)        由于使用该电源模...

动感小麦兜的博客 1万+

PVE 8.0 保姆级换源教程:从Debian到LXC仓库,一次搞定国内镜像(附弹窗去除)

本文提供PVE 8.0保姆级换源教程,涵盖从Debian基础源到LXC仓库的国内镜像配置,并附赠去除订阅弹窗的实用技巧。通过详细步骤和命令示例,帮助用户快速优化ProxmoxVE环境,提升下载速度并消除干扰提示,适用于虚拟化平台的高效管理。

weixin_33282146的博客 413

java HTableDescriptor类解析

HTableDescriptor主要用于和Hbase表相关的操作. 继承了WritableComparable接口,就是说可以序列化以及比较 public class HTableDescriptor implements WritableComparable<HTableDescriptor> 如何创建一个表呢?看构造函数, public HTableDescriptor(final TableName name) { super(); setName(name); }

鸭梨的博客 2661

STM32F103ZET6【标准库函数开发】------04五个串口配置实战:从零到一构建多串口通信系统

本文详细介绍了STM32F103ZET6标准库函数开发中五个串口(USART/UART)的配置实战,从硬件引脚识别、时钟树配置到多串口系统整合技巧。通过具体代码示例和调试经验,帮助开发者快速构建稳定的多串口通信系统,适用于工业控制、物联网网关等应用场景。

weixin_29188997的博客 344

HBase——命令操作

一、Hbase shell 通用命令 status: 提供HBase的状态,例如,服务器的数量。 version: 提供正在使用HBase版本。 table_help: 表引用命令提供帮助。 whoami: 提供有关用户的信息。 数据定义语言 这些是关于HBase在表中操作的命令。 create: 创建一个表。 list: 列出HBase的所有表。 disable: 禁用表。 is_disable...

温一杯酒的博客 783

保姆级教程:在Ubuntu 20.04上从零搞定ROS Noetic和RealSense驱动,为无人机开发铺路

本文提供了一份详细的Ubuntu 20.04环境下ROS Noetic和RealSense驱动安装指南,专为无人机开发环境搭建设计。从系统配置、ROS安装到RealSense驱动集成,涵盖所有关键步骤和常见问题解决方案,帮助开发者快速搭建自主空中机器人开发平台。

weixin_30329623的博客 65

掌握C++新特性中智能指针的综合指南

本文是一篇关于C++中智能指针的综合指南,旨在深入探讨现代内存管理的核心概念和技术。智能指针是C++中一种强大的工具,可以帮助开发人员更安全、高效地管理内存资源。通过详细解析各种类型的智能指针,包括unique_ptr、shared_ptr和weak_ptr,读者将了解它们的原理、用法和适用场景。本文将重点介绍智能指针的优势,如自动内存释放、避免内存泄漏和循环引用等问题。此外,还将讨论智能指针与传统指针的区别,并提供一些最佳实践和实用技巧,帮助读者在实际项目中正确、高效地使用智能指针。

Lion_Long的博客 1200

HBASE-JAVA客户端入门操作

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.junit.After; import org.junit.Before; import org.junit.Test; import java.io.IOExc

weixin_46373361的博客 220

药物对接仿真软件:HADDOCK_(9).结果分析方法

HADDOCK是一种强大的药物对接仿真工具,通过对生成的输出文件进行详细的分析,我们可以验证仿真结果的可靠性,并为进一步优化药物设计提供依据。常见的分析方法包括解读输出文件、使用可视化工具进行结构分析、评估对接模型的稳定性和准确性等。通过这些步骤,我们可以更全面地了解受体和配体的结合模式,从而提高药物设计的成功率。

kkchenjj的博客 1008

java客户端 hbase表_HBase 1.1.2 Java 客户端 api(hbase 1.0 增删改查,建表、删表等)

说明:1.第一部分为代码2.第二部分为工程pom文件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....

weixin_39742471的博客 86

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

Robot_PLC_HMI_Automation 4240

YOLOv11改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)

为了弥补现有 IoU 损失在不同检测任务中泛化性弱和收敛速度慢的问题,·Inner-IoU·通过引入比例因子 “ratio” 来控制辅助边界框的尺度大小,利用不同尺度的辅助边界框来计算损失,从而加速边界框回归过程。

Limiiiing的博客 3892

hbase 1.0.1 java api_HBase 1.1.2 Java 客户端 api(hbase 1.0 增删改查,建表、删表等)

说明:1.第一部分为代码2.第二部分为工程pom文件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....

weixin_39789979的博客 95

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

HBase_HBase2.0 Java API 操作指南 (一)CRUD

由于网上的HBase Java API 大多都是基于 Hbase 1.0 + 的,故写了这篇文章。 参考了以下文章: https://blog.csdn.net/u012893747/article/details/84753988 本篇文章只讲解下 基本的 CURD 操作,更为复杂的操作,我们放到后面讲解。 目录 依赖包 建立连接 创建表 删除列族 删除表 插入数据 ...

迎难而上 1476

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

(三)实战1:hbase的2.X版本java API开发说明以及demo

Hbase Java API 代码开发 几个主要 Hbase API 类和数据模型之间的对应关系: java 类 HBase 数据模型 HBaseAdmin HBaseConfiguration 数据库(DataBase) HTable 表Table) HColumnDescriptor HTableDescriptor 列簇(Column...

weixin_43930865的博客 3207

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

hbase java api建表一直等待_通过java API HBase中创建表时出错问题,怎么解决?

HBase提供了对HBase进行一系列的管理涉及到对表的管理、数据的操作java api。常用的API操作有:1、 对表的创建、删除、显示以及修改等,可以用HBaseAdmin,一旦创建了表,那么可以通过HTable的实例来访问表,每次可以往表里增加数据。2、 插入数据创建一个Put对象,在这个Put对象里可以指定要给哪个列增加数据,以及当前的时间戳等值,然后通过调用HTable.put(Put)...

weixin_28475533的博客 537

三-1,使用 Java 操作 HBase API

文章目录三, HBase API 入门3.1 API 基本使用3.1.0 环境准备3.1.1 HBase API-->DDL操作1. 判断hbase中的某张表是否存在(admin.tableExists(TableName)) && 获取Configuration 对象 + 获取 HBaseAdmin 对象1.1 改进上一节-->静态代码块的恰当应用2. 创建表(admin.createTable(tableName, cf))3. 创建命名空间3.1.2 HBase API-

菜菜的大数据开发の路 3851

HBase Shell操作和HBase API操作(创建表,插入数据,查看数据,删除表等操作)(二)

HBase Shell操作和HBase API操作一.HBase Shell操作1.进入HBase客户端命令行2.查看帮助命令3.查看当前数据库中有哪些表4.创建表5.插入数据到表6.插入多行数据7.扫描查看表8.查看表结构9.更新指定字段的数据10.查看"指定行"或"指定列族:列"的数据11.统计表数据行数12.删除数据13.清空表数据14.删除表15.变更表信息16.获取多版本数据二.HBase API操作1.环境准备2.HBase API 一.HBase Shell操作 1.进入HBase客户端命令行

May_J_Oldhu的博客 2938

Hbase API以及java如何操作Hbase的说明

1.文章目的 本文主要包括两个方面的内容,一是Hbase Java API简介;二是一个完整的Java项目访问Hbase的步骤及示例代码。 本文档假设读者已在VMware上安装centOS虚拟机,并且已成功安装配置好Hadoop伪集群和Hbase数据库 2.Hbase的javaAPI简介 2.1几个相关类与HBase数据模型之间的对应关系 3.重点类介绍 3.1.HBaseConfigurati...

zhangbinch的博客 1289

HBase学习—增删改查API

11

aosimth的博客 403

hbase建索引java api_hbase java api样例(版本1.3.1,新API)

hbase版本:1.3.1目的:HBase新API的使用方法。尝试并验证了如下几种java api的使用方法。1.创建表2.创建表(预分区)3.单条插入4.批量插入5.批量插入(客户端缓存)6.单条get7.批量get8.简单scan9.混合使用■实际代码■pom.xml文件hbase_samplehbase_sample1.04.0.0org.apache.hbasehbase-client1....

weixin_29044713的博客 215

java hbase 清空表api_java 操作HBase的管理API

HBase的管理Java API中止服务器或客户端。void abort(String why,Throwable e)检查服务器或客户端是否已中止。boolean isAborted()返回此对象使用的连接。Connection getConnection()判断表述否已存在,不存在则创建表boolean tableExists列出所有用户空间表#已过时。 自2.0版本以来,将在3.0版本中删除...

weixin_39619481的博客 614
上一篇: HBase1.1.2编译
下一篇: HBase 1.1.2 split 策略
数大招疯
博客等级 码龄16年 237粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值