hbase 1.2 api 工具类

Hbase-1.1.2 Java API 操作 前期准备: Hbase-1.1.2 Java开发需要的最少Jar包 下面的代码是根据最新的Hbase-1.1.2 Java API 进行的基础操作。 import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configurat 阅读详情

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件


————————————————------------------------------------------------------------------------------------------------------------------

hbase之前版本有些api已经deprecated了,下面是1.2的api,没有deprecated

 

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
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.client.Table;
import org.apache.hadoop.hbase.util.Bytes;


public class HBaseUtils {
	 private static Configuration conf = HBaseConfiguration.create();
	 private static ExecutorService pool=Executors.newScheduledThreadPool(20);
	 private static Connection connection = null;
	 private static HBaseUtils instance=null;
	 
	 private HBaseUtils(){
		 if(connection==null){
			 try {
				connection=ConnectionFactory.createConnection(conf, pool);
			} catch (IOException e) {
				e.printStackTrace();
			}
		 }
	 }
	 
	 public static synchronized HBaseUtils getInstance(){
		 if(instance==null){
			 instance=new HBaseUtils();
		 }
		 return instance;
	 }
	  /**
     * 创建表
     * @throws IOException
     */
    public void createTable(String tableName, String[] columns) throws IOException {
        Admin admin = connection.getAdmin();
        TableName name=TableName.valueOf(tableName);
        if (admin.tableExists(name)) {
        	admin.disableTable(name);
        	admin.deleteTable(name);
        } else {
            HTableDescriptor desc =admin.getTableDescriptor(name);
            for (String column : columns) {
                desc.addFamily(new HColumnDescriptor(column));
            }
            admin.createTable(desc);
        }
    }
    
    /**
     * 插入一行记录
     * @param tablename
     *             表名
     * @param row
     *             行名称
     * @param columnFamily
     *             列族名
     * @param columns
     *             (列族名:column)组合成列名
     * @param values
     *             行与列确定的值
     */
    public void insertRecord(String tableName, String row, String columnFamily, String[] columns, String[] values) {
        try {
        	TableName name=TableName.valueOf(tableName);
            Table table = connection.getTable(name);
            Put put = new Put(Bytes.toBytes(row));
            for (int i = 0; i < columns.length; i++) {
                put.addColumn(Bytes.toBytes(columnFamily),
                        Bytes.toBytes(String.valueOf(columns[i])),
                        Bytes.toBytes(values[i]));
                table.put(put);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 删除一行记录
     * @param tablename
     *             表名
     * @param rowkey
     *             行名
     * @throws IOException
     */
    public void deleteRow(String tablename, String rowkey) throws IOException {
    	TableName name=TableName.valueOf(tablename);
        Table table = connection.getTable(name);
        List<Delete> list = new ArrayList<Delete>();
        Delete d1 = new Delete(rowkey.getBytes());
        list.add(d1);
        table.delete(list);
    }
    
    /**
     * 查找一行记录
     * @param tablename
     *             表名
     * @param rowkey
     *             行名
     */
    public static void selectRow(String tablename, String rowKey)
            throws IOException {
    	TableName name=TableName.valueOf(tablename);
        Table table = connection.getTable(name);
        Get g = new Get(rowKey.getBytes());
        Result rs = table.get(g);
        for (Cell cell : rs.rawCells()) {
            System.out.print(new String(cell.getRowArray()) + "  ");
            System.out.print(new String(cell.getFamilyArray()) + ":");
            System.out.print(new String(cell.getQualifierArray()) + "  ");
            System.out.print(cell.getTimestamp() + "  ");
            System.out.println(new String(cell.getValueArray()));
        }
    }
    
    /**
     * 查询表中所有行
     * @param tablename
     */
    public List scanAllRecord(String tablename) {
        try {
        	List entityList=new ArrayList();
        	TableName name=TableName.valueOf(tablename);
            Table table = connection.getTable(name);
            Scan s = new Scan();
            ResultScanner rs = table.getScanner(s);
            for(Result result : rs){
	            for (Cell cell : result.rawCells()) {
	            	HBaseBaseEntity entity=new HBaseBaseEntity();
	            	entity.setRowKey(new String(CellUtil.cloneRow(cell)));
	            	entity.setFamily(new String(CellUtil.cloneFamily(cell)));
	            	entity.setQualifier(new String(CellUtil.cloneQualifier(cell)));
	            	entity.setTimestamp(cell.getTimestamp());
	            	entity.setValue(CellUtil.cloneValue(cell));
	            	entityList.add(entity);
	            }
            }
            return entityList;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 删除表操作
     * @param tablename
     * @throws IOException
     */
    public void deleteTable(String tablename) throws IOException {
        try {
        	TableName name=TableName.valueOf(tablename);
            	if(admin.tableExists(name)){
            	  admin.disableTable(name);
            	  admin.deleteTable(name);
                }
        } catch (MasterNotRunningException e) {
            e.printStackTrace();
        } catch (ZooKeeperConnectionException e) {
            e.printStackTrace();
        }
    }
}
 scanAllRecord(String tablename) {
        try {
        	List entityList=new ArrayList();
        	TableName name=TableName.valueOf(tablename);
            Table table = connection.getTable(name);
            Scan s = new Scan();
            ResultScanner rs = table.getScanner(s);
            for(Result result : rs){
	            for (Cell cell : result.rawCells()) {
	            	HBaseBaseEntity entity=new HBaseBaseEntity();
	            	entity.setRowKey(new String(CellUtil.cloneRow(cell)));
	            	entity.setFamily(new String(CellUtil.cloneFamily(cell)));
	            	entity.setQualifier(new String(CellUtil.cloneQualifier(cell)));
	            	entity.setTimestamp(cell.getTimestamp());
	            	entity.setValue(CellUtil.cloneValue(cell));
	            	entityList.add(entity);
	            }
            }
            return entityList;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 删除表操作
     * @param tablename
     * @throws IOException
     */
    public void deleteTable(String tablename) throws IOException {
        try {
        	TableName name=TableName.valueOf(tablename);
            	if(admin.tableExists(name)){
            	  admin.disableTable(name);
            	  admin.deleteTable(name);
                }
        } catch (MasterNotRunningException e) {
            e.printStackTrace();
        } catch (ZooKeeperConnectionException e) {
            e.printStackTrace();
        }
    }
}

 

 

 

 

 

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

相关推荐

更新hbase client api 2.0.1记录

今天更新hbase-client版本发现原本使用的utils类提示方法废弃,所以查询新的api文档发现确实做了变更,而且以前1.x用的方法将会在以后3.x版本删除; 更新的版本maven:   &lt;dependency&gt; &lt;groupId&gt;org.apache.hbase&lt;/groupId&gt; &lt;artifactId&gt;hbase-...

望着下雨的天 3821

Hbase工具类-API操作

1. HbaseUtil工具类 Hbase虽然提供了相关的API,但是在实际使用过程中还是非常麻烦,因此根据官方的API封装对应的工具类,从而简化开发操作。 package com.king import java.math.BigDecimal import java.util import com.alibaba.fastjson.JSONObject import com.king.c...

硅谷工具人 912

使用Docker部署HBase并使用Java-API连接

HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,但是也有很多不同之处。HBase利用Hadoop HDFS作为其文件存储系统,它利用Hadoop MapReduce来处理HBase中的海量数据,使用Zookeeper作为协

jqdelove的博客 2457

HBase使用教程

HBase常用的查看数据方式有scan和get,get是一种特殊的scan,get是scan的startRow和endRow等于同一个值的特殊情况。HBase的RowKey 是按照B+树的形式存放的,所以查找一个具体的RowKey 速度是非常快的,所以查询数据的时候一般都会设置scan的startRow和endRow,这样可以缩小查找的范围,所以RowKey 的设计在HBase里面是极为重要的。

熬过万丈孤独,藏下星辰大海 2037

SpringBoot 封装 HBase 操作工具类

到此 SpringBoot 封装 HBase 操作工具类介绍完成。此处我是自定义HBase配置,后面会有专门的配置类来加载这个配置。特此记录便于日后查阅。

专注基础架构领域 1943

HBase 1.1.2 REST API 初体验

环境版本: ·HDP 2.5.3 ·HBase 1.1.2 HBase提供了REST API,为开发者增加了更多选择。我们可以使用HBase REST API对表进行增删改查,但本篇博客主要使用查询功能。 请注意HBase版本! 请注意HBase版本! 请注意HBase版本! 1 启动HBase REST Server # 前台运行 [root@hqc-test-hdp3 ~]# hbase rest start -p8888 2020-05-12 16:26:02,062 INFO [main] u

光于前裕于后的博客 1324

Hbase 2.1.5版本的 API操作(HBase工具类封装)

前言 本文着重练习了 Hbase API 操作: 获取连接对象(使用线程池),当然,有的朋友也喜欢使用 ThreadLocal类做操作。 创建命名空间。 创建表。 判断表是否存在。 插入数据。 查找单行数据。 查找指定行的指定列。 全表扫描。 扫描+过滤器。 删除指定数据。 删除表。 1、环境 java环境 JDK 1.8 Hbase 环境 2.1.5 POM文件 <?xml versi...

FBB360JAVA的博客 3028

hbase表操作工具类

hbase表操作工具类.连接hbase数据库,根据rowkey删除单条记录,批量删除记录。获取某个字段的值,判断记录是否存在,向hbase表中插单条数据,批量插入到hbase表。 查询表,获取某个字段的值列表,hbase工具

HBase Java API

HBase Java API

qq_51180928的博客 1372

hbase- java开发连接工具类

java开发连接hbase的jar包,1.2.1版本的hbase-client.jar,还有其他jar包,很全

Hbase工具类

文章目录HBASE 工具类HBASE 高可用搭建 HBASE 工具类 package com.day_219; import org.apache.hadoop.conf.Configuration; 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.util.Bytes; import java.io.IO

工具类:HBase常用的api操作的java实现

对表的操作 package com.imooc; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.*; public class HBaseTest { public static vo...

曹利荣的博客 3196

比较器和运算放大器-2

今天继续了解输入阻抗问题,观察下图:首先考虑在我们没有接运放时,A点输出电压为6V,当接入如图所示的阻抗时电压还是6V吗?共模电阻和红框内对地电阻并联,阻值变小,相当于5k,通过计算可以求得A点电压变为4V,这样A的值发生了改变,试想一下这样的信号接入到运放的两端是不是相当于比较的两端信号发生了改变,那结果一定会发生偏离。信号源一般内阻是不确定的,一般也不是很小,如果不想改变输入阻抗,那唯一的办法就是改变运放的内阻了,比如内阻改为100K,1M等,越大越好,是不是A点电压就会无限接近6V。

weixin_42855218的博客 1312

Hbase 1.2.1 Java API简单demo

自从hbase1.1.3后,hbase的api有很多改动,比如HTablePool,HTable等的类的很多方法已经过时 这里简单写几个 导入包 import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration;

gao634209276的博客 4235

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-4: ordinal not in range(128)

python3报错处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128) 一、报错场景 // 报错代码 Traceback (most recent call last): File "test_autoo3_2.py", line 214, in <module> main() File "test_autoo3_2.py",

浪里小飞侠的博客 4202

LTspice进阶技巧-031.一键加密仿真模型:LTspice Encrypt Tool实战指南

本文详细介绍了LTspice Encrypt Tool的使用方法,帮助工程师一键加密LTspice仿真模型,保护知识产权。通过图形化界面简化操作流程,支持批量加密和兼容性处理,适用于电路设计中的模型保护需求。

weixin_28304023的博客 204

HBase 2.1.0 新式API 基本功能写法

HBase2.X的部分API HBase的1.x的API,将会在3.0版本移除很多的写法,因此,在这里对新式的api进行简单的写法记录.因为没有研究太深入,如果有写的不妥的地方,之后会加以改正. 导入的包 import java.util import org.apache.hadoop.conf.Configuration import org.apache.hadoop.hbase....

一枚新鲜的猿的博客 3956

别再为模糊的3D重建头疼了!手把手教你用3DSlicer处理DICOM数据,搞定医学影像三维可视化

本文详细解析了医学影像三维重建中常见的模糊问题,并手把手教你使用3DSlicer处理DICOM数据,实现精准的三维可视化。从层厚设置到数据格式转换,再到重建算法选择和渲染参数微调,提供了一套完整的优化方案,特别适合临床医生和医学影像处理人员提升工作效率。

weixin_28693447的博客 251

HBase的Java API操作

HBase的Java API操作代码,实现增删改查,过滤功能

qq_40078490的博客 2764

2025年人形机器人产业研究

人形机器人是一种模仿人类外形、动作和行为的机器人,旨在替代或辅助人类完成各种任务。其显著特征包括人类外形、动作模仿和智能交互能力。根据形态和功能,人形机器人可分为小型、中型、大型以及服务型、工业型、救援型和娱乐型等类别。发展历程经历了初始阶段、高度集成系统阶段和突破性进展阶段,技术不断进步。关键技术包括执行系统、控制系统和感知与交互系统,涉及机械结构、运动控制、平衡控制、任务执行控制以及感知与交互能力。主要研究方向包括外部仿人化和内部仿生,前者关注外观设计、动作控制和任务执行能力,后者致力于模拟人类核心机制

一名80后IT人的成长记录,记录自己在工作、学习中的点点滴滴,在成长的喜悦与忧心的故事里,铭记反脆弱的勇气。 1573

基于Jetson Nano与YOLOv5s的无人机道路抛洒物实时检测系统【附数据集+代码】

本文详细介绍基于Jetson Nano与YOLOv5s的无人机道路抛洒物实时检测系统,通过硬件选型、数据采集、模型优化等关键步骤,实现高效的道路安全监控。系统结合无人机高空视角和YOLOv5s算法,能精准识别各类抛洒物,实测准确率达98.2%,为交通管理提供智能化解决方案。

weixin_29081163的博客 1457

Hbase的API

Hbase API 文章目录Hbase API准备工作Namespace-DDL1. Junit执行代码模板2. 创建namespace的API3. 列出所有的namespace4. 列出所有namespace中的表名5. 修改namespace的属性信息6. 删除namespaceTable-DDL1. Junit执行代码模板2. 创建一个table3. 修改table的列族属性信息4. 向table中添加新的列族5. 获取table的描述信息6. 删除tableTable_CRUD(DML+DQL)1.

灰哀之雪的博客 2396

喷涂机器人系列编程:ABB IRB 5500_(9).常见故障诊断与排除

ABB IRB 5500 喷涂机器人在实际应用中可能会遇到各种故障,但通过系统的诊断和排除方法,可以确保生产线的连续运行。定期维护和保养是预防故障的重要手段,而操作培训和规范则能有效减少人为因素引起的故障。希望本节内容能帮助操作和维护人员提高故障诊断和排除的效率,确保喷涂机器人的稳定运行。如果您有任何疑问或需要进一步的帮助,请联系 ABB 客户服务中心。

zhubeibei168的博客 1045
上一篇: Hbase之批量数据写入
下一篇: hbase所谓的三维有序存储
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

hxpjava1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值