用java API来操作HBase
发布日期:2021-06-30 08:00:24
浏览次数:3
分类:技术文章
本文共 2581 字,大约阅读时间需要 8 分钟。
我们在日常工作中,用eclipse来编写具体的程序,来操作HBase数据库,首先在eclispe中配置HBase环境
新建项目--》导入HBase中的jar包
下面直接贴代码
package com.hbase;import java.io.IOException;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.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;public class HBaseTest { public static final String TABLE_NAME = "table1"; public static final String FAMILY_NAME = "family1"; public static final String ROW_KEY = "rowkey1"; public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); conf.set("hbase.rootdir", "hdfs://master.dragon.org:9000/hbase"); // 使用eclipse,必须使用这个配置定位 conf.set("hbase.zookeeper.quorum", "master.dragon.org"); // HBaseAdmin用于创建表和删除表 HBaseAdmin admin = new HBaseAdmin(conf); createTable(admin);//创建表 deleteTable(admin);//删除表 // HTable适用于添加记录,查看记录 HTable hTable = new HTable(conf, TABLE_NAME); addRecord(hTable);//添加记录 getRecord(hTable);//得到记录 scannerTable(hTable);//全表扫描 hTable.close(); } private static void scannerTable(HTable hTable) throws IOException { Scan scan = new Scan(); ResultScanner scanner = hTable.getScanner(scan); for (Result result : scanner) { byte[] value = result.getValue(FAMILY_NAME.getBytes(), "info".getBytes()); System.out.println(result + "\t" + new String(value)); } } private static void getRecord(HTable hTable) throws IOException { Get get = new Get(ROW_KEY.getBytes()); Result result = hTable.get(get); byte[] value = result.getValue(FAMILY_NAME.getBytes(), "info".getBytes()); System.out.println(result + "\t" + new String(value)); } private static void addRecord(HTable hTable) throws IOException { Put put = new Put(ROW_KEY.getBytes()); put.add(FAMILY_NAME.getBytes(), "info".getBytes(), "50".getBytes()); hTable.put(put); } private static void deleteTable(HBaseAdmin admin) throws IOException { admin.disableTable(TABLE_NAME); admin.deleteTable(TABLE_NAME); } private static void createTable(HBaseAdmin admin) throws IOException { if (!admin.tableExists(TABLE_NAME)) { HTableDescriptor desc = new HTableDescriptor(TABLE_NAME); HColumnDescriptor family = new HColumnDescriptor(FAMILY_NAME); desc.addFamily(family); admin.createTable(desc); } }}
转载地址:https://huosl.blog.csdn.net/article/details/51179262 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月21日 12时47分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ROS相关知识
2019-04-30
单目深度估计 monodepth2模型 代码
2019-04-30
位图索引Bitmap indexes
2019-04-30
YOLO算法(二)—— Yolov2 & yolo9000
2019-04-30
YOLO算法(三)—— Yolov3 & Yolo系列网络优缺点
2019-04-30
Python的__future__模块
2019-04-30
计算机视觉中的cost-volume的概念具体指什么(代价体积)
2019-04-30
启发函数heuristic 与 A*
2019-04-30
Image Pyramid(图像金字塔)
2019-04-30
Oracle 作业记录
2019-04-30
putty连接AWS配置(multimedia project)
2019-04-30
Hourglass Network 沙漏网络 (pose estimation姿态估计)
2019-04-30
OpenCV实战(二)——答题卡识别判卷
2019-04-30
目标检测神经网络的发展历程(52 个目标检测模型)
2019-04-30