HBase Client API简单

更新hbase client api 2.0.1记录 今天更新hbase-client版本发现原本使用的utils类提示方法废弃,所以查询新的api文档发现确实做了变更,而且以前1.x用的方法将会在以后3.x版本删除; 更新的版本maven:   <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-... 阅读详情
package leap.dao.hbase.impl;

import leap.dao.hbase.HbaseDao;
import org.apache.hadoop.conf.Configuration;
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.*;
import org.apache.hadoop.hbase.filter.PrefixFilter;

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

/**
 * Created by FromX on 2017/3/17.
 */
public class HbaseDaoImpl implements HbaseDao {

    // 声明静态配置
    private static Configuration conf = null;
    private static HBaseAdmin hAdmin = null;
    private static Connection conn = null;

    static {
        conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum", "172.17.200.153,172.17.201.152,172.17.201.107");
        conf.set("hbase.zookeeper.property.clientPort", "2181");
        conf.set("hbase.master", "172.17.201.152" + ":60000");
        conf.set("zookeeper.znode.parent", "/hbase-unsecure");

        try {
            conn = ConnectionFactory.createConnection(conf);
            // 创建一个数据库管理员
            hAdmin = (HBaseAdmin) conn.getAdmin();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }


    @Override
    public void save(Put put, String tableName) throws IOException {
        // TODO Auto-generated method stub
        Table table = conn.getTable(TableName.valueOf(tableName));
        table.put(put);
        table.close();
    }

    @Override
    public void insert(String tableName, String rowKey, String family, String quailifer, String value) throws IOException {
        Table table = conn.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        put.addColumn(family.getBytes(), quailifer.getBytes(), value.getBytes());
        table.put(put);
        table.close();
    }

    @Override
    public void insert(String tableName, String rowKey, String family, String[] quailifer, String[] value) throws IOException {
        Table table = conn.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        // 批量添加
        for (int i = 0; i < quailifer.length; i++) {
            String col = quailifer[i];
            String val = value[i];
            put.addColumn(family.getBytes(), col.getBytes(), val.getBytes());
        }
        table.put(put);
        table.close();
    }

    @Override
    public void save(List<Put> Put, String tableName) throws IOException {
        // TODO Auto-generated method stub
        Table table = conn.getTable(TableName.valueOf(tableName));
        table.put(Put);
        table.close();
    }

    @Override
    public Result getOneRow(String tableName, String rowKey) throws IOException {
        // TODO Auto-generated method stub
        Table table = conn.getTable(TableName.valueOf(tableName));
        Get get = new Get(rowKey.getBytes());
        Result rsResult = table.get(get);
        table.close();
        return rsResult;
    }

    @Override
    public List<Result> getRows(String tableName, String rowKey_like) throws IOException {
        // TODO Auto-generated method stub
        Table table = conn.getTable(TableName.valueOf(tableName));
        ;
        PrefixFilter filter = new PrefixFilter(rowKey_like.getBytes());
        Scan scan = new Scan();
        scan.setFilter(filter);
        ResultScanner scanner = table.getScanner(scan);
        List<Result> list = new ArrayList<Result>();
        for (Result rs : scanner) {
            list.add(rs);
        }
        table.close();
        return list;
    }

    @Override
    public List<Result> getRows(String tableName, String rowKeyLike, String[] cols) throws IOException {
        // TODO Auto-generated method stub
        Table table = conn.getTable(TableName.valueOf(tableName));
        PrefixFilter filter = new PrefixFilter(rowKeyLike.getBytes());

        Scan scan = new Scan();
        for (int i = 0; i < cols.length; i++) {
            scan.addColumn("cf".getBytes(), cols[i].getBytes());
        }
        scan.setFilter(filter);
        ResultScanner scanner = table.getScanner(scan);
        ArrayList<Result> list = new ArrayList<Result>();
        ;
        for (Result rs : scanner) {
            list.add(rs);
        }
        table.close();
        return list;
    }

    @Override
    public List<Result> getRows(String tableName, String startRow, String stopRow) throws IOException {

        Table table = conn.getTable(TableName.valueOf(tableName));
        Scan scan = new Scan();
        scan.setStartRow(startRow.getBytes());
        scan.setStopRow(stopRow.getBytes());
        ResultScanner scanner = table.getScanner(scan);
        List<Result> list = new ArrayList<Result>();
        for (Result rsResult : scanner) {
            list.add(rsResult);
        }
        table.close();
        return list;

    }

    @Override
    public void deleteRecords(String tableName, String rowKeyLike) throws IOException {
        Table table = conn.getTable(TableName.valueOf(tableName));
        PrefixFilter filter = new PrefixFilter(rowKeyLike.getBytes());
        Scan scan = new Scan();
        scan.setFilter(filter);
        ResultScanner scanner = table.getScanner(scan);
        List<Delete> list = new ArrayList<Delete>();
        for (Result rs : scanner) {
            Delete del = new Delete(rs.getRow());
            list.add(del);
        }
        table.delete(list);
        table.close();
    }

    @Override
    public void deleteTable(String tableName) throws IOException {

        if (hAdmin.tableExists(tableName)) {
            hAdmin.disableTable(tableName);// 禁用表
            hAdmin.deleteTable(tableName);// 删除表
            System.err.println("删除表成功!");
        } else {
            System.err.println("删除的表不存在!");
        }
        //  hAdmin.close();
    }

    @Override
    public String createTable(String tableName, String[] columnFamilys) throws IOException {

        if (hAdmin.tableExists(tableName)) {
            return "table existed";
        } else {
            HTableDescriptor tableDesc = new HTableDescriptor(
                    TableName.valueOf(tableName));
            for (String columnFamily : columnFamilys) {
                tableDesc.addFamily(new HColumnDescriptor(columnFamily));
            }
            hAdmin.createTable(tableDesc);
            return "success";
        }
        // hAdmin.close();// 关闭释放资源
    }

    @Override
    public List<Result> getRowsByOneKey(String tableName, String rowKeyLike, String[] cols) throws IOException {
        // TODO Auto-generated method stub
        Table table = conn.getTable(TableName.valueOf(tableName));
        PrefixFilter filter = new PrefixFilter(rowKeyLike.getBytes());

        Scan scan = new Scan();
        for (int i = 0; i < cols.length; i++) {
            scan.addColumn("cf".getBytes(), cols[i].getBytes());
        }
        scan.setFilter(filter);
        ResultScanner scanner = table.getScanner(scan);
        List<Result> list = new ArrayList<Result>();
        for (Result rs : scanner) {
            list.add(rs);
        }
        table.close();
        return list;
    }

    @Override
    public Result getOneRowAndMultiColumn(String tableName, String rowKey, String[] cols) throws IOException {
        Table table = conn.getTable(TableName.valueOf(tableName));
        Get get = new Get(rowKey.getBytes());
        for (int i = 0; i < cols.length; i++) {
            get.addColumn("cf".getBytes(), cols[i].getBytes());
        }
        Result rsResult = table.get(get);
        table.close();
        return rsResult;
    }
}


hbase-client-1.4.3-API文档-中文版.zip 赠送jar包:hbase-client-1.4.3.jar; 赠送原API文档:hbase-client-1.4.3-javadoc.jar; 赠送源代码:hbase-client-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-client-1.4.3.pom; 包含翻译后的API文档:hbase-client-1.4.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.hbase:hbase-client:1.4.3; 标签:apache、client、hbase、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 立即下载

相关推荐

Unity Animancer插件(一)基本使用

Animancer是什么?资源商店主页我们来通过Animancer实现一个最基本的动画播放效果。首先创建一个脚本,编写如下代码 很容易理解,就是在时播放一个指定的动画片段。接下来为角色添加、和刚刚编写的,并为字段赋值 接下来运行游戏就可以看到效果了 此时角色身上的组件可以看到当前动画的各项参数 下面我们来实现通过按键控制角色在于之间转换。新创建一个脚本。在代码中监听Y轴上的输入。然后根据监听到的数值判断角色状态,并播放相应的动画 给对应字段赋值后,启动游戏看下效果 下面来实现一个开枪效果。在默认状态下,角色

夜槿笙歌的博客 1万+

python_存储过程迁移大数据模板

#!/usr/local/python/bin/python #coding=utf-8 #@descript: #@author: #@date:DateDateDate #@param: #bizDate 业务日期 YYYYMMDD #bizType 业务类型 #@history #IdIdId import sys from job.base.JobBase import ExitCode import job.base.ClientUtil as util from job.bas

zzt1105261564的博客 920

【开源~磁悬浮】零代码,纯硬件闭环:从霍尔到H桥的磁悬浮稳定术

本文详细介绍了如何不依赖任何代码,仅通过模拟和数字电路的组合,实现一个完整的磁悬浮闭环控制系统。从霍尔传感器检测位置,到运放电路进行信号调理与模拟PID控制,再到H桥驱动电磁铁执行纠偏,全程使用基础电子元器件搭建。文章深入剖析了系统原理、电路设计、调试技巧与实践经验,展现了纯硬件实现自动控制的独特魅力与挑战。

perl8的博客 622

查询数据库元数据

【代码】查询数据库元数据。

jtpython666的博客 359

kali破解wifi之airmon-ng 工具利用

......

qq_42378173的博客 1万+

Windows Server 2019/2022 RDS 授权实战:3步激活许可证服务器,解决120天宽限期问题

本文详细介绍了Windows Server 2019/2022 RDS授权实战,提供3步激活许可证服务器的完整解决方案,解决120天宽限期问题。涵盖远程桌面授权服务器配置、许可证激活方法及组策略设置,确保企业合规使用远程桌面服务。

weixin_32705179的博客 983

hbase的api操作

hbase的api操作TestHbaseConnectionTestHbaseDDLTestHbaseDMLTestHbaseFilter总结 TestHbaseConnection 两大对象: HbaseConfiguration: hbase的加载配置文件的对象,用于加载默认配置文件 hbase-dafult.xml Connection: hbase的连接对象 package hba...

u013111855的博客 2491

保姆级教程:用STM32CubeMX给STM32F407配置RTC秒中断,并解决掉电时间丢失问题

本文详细介绍了如何使用STM32CubeMX为STM32F407配置RTC秒中断,并解决掉电时间丢失问题。通过硬件原理与软件配置的双视角解析,帮助开发者实现精确计时与时间持久化,适用于物联网设备和工业控制器等场景。

weixin_42519733的博客 137

JobClient应用概述

一、应用背景 由于在设计中有一个模块是对Job的管理,所以,在这里我采用了JobClinet来进行简单的控制。 二、应用点 JobClient指的是org.apache.hadoop.mapred.JobClient这个类。里面有不少的方法,我这里列举一些我用到的和一些需要注意的方法。 1、JobClient的实例化。这里有2中方法,一种是new JobClient(new JobConf);另外一种是实例化IP地址和端口。 2、通过JobClient获取Job列表。 JobClient.job

dajuezhao的专栏 5649

单节锂电池充电管理芯片应用原理阐述及应用领域

当电池电压超过2.9V时,采用恒流模式对电池充电,充电电流由PROG 管脚和GND之间的电阻RPROG确定。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置当充电电流在达到最终浮充电压之后降至设定值1/10时,WD4054将自动终止充电循环。在待机模式中,WD4054 对 BAT 引脚电压进行监控,只有当 BAT 引脚电压低于再充电阈值电压4.1V时(对应电池容量80%~90%),才会开始新的充电循环,重新对电池进行充电,这就避免了对电池进行不必要的反复充电,有效延长电池的使用寿命。

weixin_41141180的博客 947

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

Robot_PLC_HMI_Automation 3575

Hbase入门之三HBase Client API使用入门1

Hbase的基本介绍   今天公司进行了一样关于Hbase的培训,让我对Hbase有了基础的了解。和大家分享一样。自己的理解不是很深,如果有说的不对地方,希望大家斧正。   什么是Hbase?   HBase是一个分布式的、面向列的开源数据库。   分布式:Hbase的分布式是依托于Hadoop的,那Hadoop又是什么?Hadoop 是一个能够对大量数据进行分布式处理的软

云智禅师的专栏 2953

Agent Skills应用解析:构建可扩展、高效率AI探员

Agent Skills是一个简洁而强大的概念:它是一个包含组织化的指令、脚本和资源的文件夹,智能体可以动态地发现并加载这些内容,以在特定任务中表现更佳。可组合性(Composability):一个Agent Skill是一个独立的、封装良好的能力单元。开发者可以为不同的功能(例如PDF处理、网络浏览、数据分析)创建独立的技能,然后根据需要将它们组合起来,赋能不同的智能体。这意味着不再需要为每个用例构建碎片化、定制设计的智能体,而是可以通过组合现有技能来快速构建新的专业智能体。

形上得其象,形下合于数;阴阳自济,玄理自明。 1627

HBASE的读写以及client API

HBASE的读写以及client API 一:读写思想 1.系统表   hbase:namespace     存储hbase中所有的namespace的信息   hbase:meta        rowkey:hbase中所有表的region的名称    column:regioninfo:region的名称,region的范围    server:该region在哪...

weixin_30301183的博客 104

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HBase Java API: hbase-client

一:简介 hbase-client 是hbase的api 二:API package org.apache.hadoop.hbase.client; public class ConnectionFactory { /* * 创建连接 * @param conf hbase属性配置 */ public static Connection createConnection(Configu...

人不风流枉少年 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hbase java client 简介_HBase Client JAVA API

旧 的 HBase 接口逻辑与传统 JDBC 方式很不相同,新的接口与传统 JDBC 的逻辑更加相像,具有更加清晰的 Connection 管理方式。同时,在旧的接口中,客户端何时将 Put 写到服务端也需要设置,一个 Put 马上写到服务端,还是攒到一批写到服务端,新用户往往对此不太清楚。在新的接口中,引入了 BufferedMutator,可以提供更加高效清晰的写操作。HBase 0.98 与...

weixin_39574869的博客 325

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hbase-APi Client的简单操作

官网是最好的学习材料,请大家移步官网HbaseApi import java.io.IOException; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory;

weixin_41794129的博客 272

HBase Client API 简析

昨天在飞机上的2个小时看了一遍HBase的Client API,有几点心得:1.在Put小记录时最好关闭autoFlush,并合理设置WriterBuffer:因为每次Put都要进行一次RPC调用+WAL(关闭对写入提升非常大)+Server端处理,如果对于大批量小数据写入的话RPC的RTT消耗的时间就会成为写入的损耗点,因此可以通过本地缓冲批量提交的方式;默认的WriteB...

weixin_34209406的博客 171

HBase Client JAVA API

旧 的 HBase 接口逻辑与传统 JDBC 方式很不相同,新的接口与传统 JDBC 的逻辑更加相像,具有更加清晰的 Connection 管理方式。 同时,在旧的接口中,客户端何时将 Put 写到服务端也需要设置,一个 Put 马上写到服务端,还是攒到一批写到服务端,新用户往往对此不太清楚。 在新的接口中,引入了 BufferedMutator,可以提供更加高效清晰的写操作。...

weixin_30565199的博客 159

Hbase Client API 介绍

Hbase API 常用类应用 网上Hbase的介绍有很多,案例也不少。自己写了个Demo,进行一些简单的总结。 HBase 常用类介绍。 JAVA API 和 HBase数据库模型之间的关系 JAVA 类 Hbase 数据模型 HBaseAdmin 数据库(database) HBaseConfiguration HTable 表(table) HTableDescri...

专注大数据技术以及行业解决方案 737

HBase client API 实例

创建Maven  Demo项目,在pom.xml中引入HBase Client jar包: org.apache.hbase hbase-client 1.1.2 commons-logging

随便写点的专栏 1901

Hbase入门之三HBase Client API使用入门

转载:http://blog.youkuaiyun.com/lifeifei2010/article/details/41567191 Hbase的基本介绍   今天公司进行了一样关于Hbase的培训,让我对hbase有了基础的了解。和大家分享一样。自己的理解不是很深,如果有说的不对地方,希望大家斧正。   什么是Hbase?   HBase是一个分布式的、面向列的开源数据库。

shukebai的专栏 4662

hbase java client api

hbase java client

刘涛的博客 274

HBase的client api guide

参考网上的一些api guide,总结了的一些HBase的client api,以及自己的一些理解 三个部分:首先描述hbase建表,读写数据的过程;然后详细介绍一下这些过程中所使用的API,并给出实例;最后给出一些在使用HBase客户端时的一些注意事项和建议。 一家之言而已,记录加强印象~~~...

punishzhou的专栏 169
上一篇: tomcat自动部署代码脚本
下一篇: 前端实时可视化开发记录
LuckyJiang.2021
博客等级 码龄15年 217粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值