a.     Hbase Shell

//初始操作

//创建表

//往该表内插入数据

//查看该表内数据

//查找某一行元素

//修改001中zoujunyuan:hp 的值

//删除zhujuan:mp这一列

JAVA API方法

package com.briup.bigdata.project.grms;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;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.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
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;
import org.apache.hadoop.hbase.util.Bytes;public class HBaseJavaAPI {// 声明静态配置  private static Configuration conf = null;static {conf = HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum", "192.168.6.91");conf.set("hbase.zookeeper.property.clientPort", "2181");}//判断表是否存在  private static boolean isExist(String tableName) throws IOException {HBaseAdmin hAdmin = new HBaseAdmin(conf);return hAdmin.tableExists(tableName);}// 创建数据库表  public static void createTable(String tableName, String[] columnFamilys)throws Exception {// 新建一个数据库管理员  HBaseAdmin hAdmin = new HBaseAdmin(conf);if (hAdmin.tableExists(tableName)) {System.out.println("表 "+tableName+" 已存在!");System.exit(0);} else {// 新建一个students表的描述  HTableDescriptor tableDesc = new HTableDescriptor(tableName);// 在描述里添加列族  for (String columnFamily : columnFamilys) {tableDesc.addFamily(new HColumnDescriptor(columnFamily));}// 根据配置好的描述建表  hAdmin.createTable(tableDesc);System.out.println("创建表 "+tableName+" 成功!");}}// 删除数据库表  public static void deleteTable(String tableName) throws Exception {// 新建一个数据库管理员  HBaseAdmin hAdmin = new HBaseAdmin(conf);if (hAdmin.tableExists(tableName)) {// 关闭一个表  hAdmin.disableTable(tableName);hAdmin.deleteTable(tableName);System.out.println("删除表 "+tableName+" 成功!");} else {System.out.println("删除的表 "+tableName+" 不存在!");System.exit(0);}}// 添加一条数据  public static void addRow(String tableName, String row,String columnFamily, String column, String value) throws Exception {HTable table = new HTable(conf, tableName);Put put = new Put(Bytes.toBytes(row));// 指定行  // 参数分别:列族、列、值  put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),Bytes.toBytes(value));table.put(put);}// 删除一条(行)数据  public static void delRow(String tableName, String row) throws Exception {HTable table = new HTable(conf, tableName);Delete del = new Delete(Bytes.toBytes(row));table.delete(del);}// 删除多条数据  public static void delMultiRows(String tableName, String[] rows)throws Exception {HTable table = new HTable(conf, tableName);List<Delete> delList = new ArrayList<Delete>();for (String row : rows) {Delete del = new Delete(Bytes.toBytes(row));delList.add(del);}table.delete(delList);}// 获取一条数据  public static void getRow(String tableName, String row) throws Exception {HTable table = new HTable(conf, tableName);Get get = new Get(Bytes.toBytes(row));Result result = table.get(get);// 输出结果,raw方法返回所有keyvalue数组  for (KeyValue rowKV : result.raw()) {System.out.print("行名:" + new String(rowKV.getRow()) + " ");System.out.print("时间戳:" + rowKV.getTimestamp() + " ");System.out.print("列族名:" + new String(rowKV.getFamily()) + " ");System.out.print("列名:" + new String(rowKV.getQualifier()) + " ");System.out.println("值:" + new String(rowKV.getValue()));}}// 获取所有数据  public static void getAllRows(String tableName) throws Exception {HTable table = new HTable(conf, tableName);Scan scan = new Scan();ResultScanner results = table.getScanner(scan);// 输出结果  for (Result result : results) {for (KeyValue rowKV : result.raw()) {System.out.print("行名:" + new String(rowKV.getRow()) + " ");System.out.print("时间戳:" + rowKV.getTimestamp() + " ");System.out.print("列族名:" + new String(rowKV.getFamily()) + " ");System.out.print("列名:" + new String(rowKV.getQualifier()) + " ");System.out.println("值:" + new String(rowKV.getValue()));}}}// 主函数  public static void main(String[] args) {try {String tableName = "student";// 第一步:创建数据库表:“student”  String[] columnFamilys = { "info", "course" };HBaseJavaAPI.createTable(tableName, columnFamilys);// 第二步:向数据表的添加数据  // 添加第一行数据  if (isExist(tableName)) {HBaseJavaAPI.addRow(tableName, "zjy", "info", "age", "20");HBaseJavaAPI.addRow(tableName, "zjy", "info", "sex", "boy");HBaseJavaAPI.addRow(tableName, "zjy", "course", "china", "97");HBaseJavaAPI.addRow(tableName, "zjy", "course", "math", "128");HBaseJavaAPI.addRow(tableName, "zjy", "course", "english", "85");// 添加第二行数据  HBaseJavaAPI.addRow(tableName, "NIUBI", "info", "age", "19");HBaseJavaAPI.addRow(tableName, "NIUBI", "info", "sex", "boy");HBaseJavaAPI.addRow(tableName, "NIUBI", "course", "china","90");HBaseJavaAPI.addRow(tableName, "NIUBI", "course", "math","120");HBaseJavaAPI.addRow(tableName, "NIUBI", "course", "english","90");// 添加第三行数据  HBaseJavaAPI.addRow(tableName, "zhujuan", "info", "age", "18");HBaseJavaAPI.addRow(tableName, "zhujuan", "info", "sex","girl");HBaseJavaAPI.addRow(tableName, "zhujuan", "course", "china","100");HBaseJavaAPI.addRow(tableName, "zhujuan", "course", "math","100");HBaseJavaAPI.addRow(tableName, "zhujuan", "course", "english","99");// 第三步:获取一条数据  System.out.println("**************获取一条(zjy)数据*************");HBaseJavaAPI.getRow(tableName, "zjy");// 第四步:获取所有数据  System.out.println("**************获取所有数据***************");HBaseJavaAPI.getAllRows(tableName);// 第五步:删除一条数据  System.out.println("************删除一条(zjy)数据************");HBaseJavaAPI.delRow(tableName, "zjy");HBaseJavaAPI.getAllRows(tableName);// 第六步:删除多条数据  System.out.println("**************删除多条数据***************");String rows[] = new String[] { "zhujuan","NIUBI" };HBaseJavaAPI.delMultiRows(tableName, rows);HBaseJavaAPI.getAllRows(tableName);// 第七步:删除数据库  System.out.println("***************删除数据库表**************");HBaseJavaAPI.deleteTable(tableName);System.out.println("表"+tableName+"存在吗?"+isExist(tableName));} else {System.out.println(tableName + "此数据库表不存在!");}} catch (Exception e) {e.printStackTrace();}}}

使用Hbase Shell和Java API分别进行Hbase的增删改查操作相关推荐

  1. 使用Java JdbcTemplate对mySQL进行CRUD增删改查操作

    create方法:用字符串拼接构造一个SQL命令:"insert into Student (name, age) values (?, ?)" 然后传入jdbcTemplateO ...

  2. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

  3. 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!

    什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制. Cookie是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个co ...

  4. Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

    此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...

  5. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  6. java jdom进行xml的增删改差_java使用DOM对XML文档进行增删改查操作实例代码

    本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示. 源代码: package com.zc.homeWork18; import java.io.File; ...

  7. java servlet dao_Java+MyEclipse+Tomcat 详解Servlet和DAO数据库增删改查操作(源码)

    [实例简介] 该资源主要参考自己的博客http://blog.csdn.net/eastmount/article/details/45936121 讲诉Java+MyEclipse+Tomcat 详 ...

  8. Java连接sqlserver数据库,并进行增删改查操作

    用编程语言连接数据库是程序员必备的技能,今天我们就来学习一下如何通过Java来连接sqlserver数据库,并实现增删改查操作. 需要用到的工具: Myeclipse,sqlserver数据库,Mic ...

  9. (Java/JDBC)对MySQL数据库实现基础的增删改查操作(含源码)

    文章目录 前言 注(常用PreparedStatement方法) 源码展示 前言 实现数据库连接 → Java连接MySQL数据库(含源码) (实现简单的增删查改更改正确的SQL语句即可) 增:ins ...

  10. Java程序-单链表增删改查(实现对水浒人物的增删改查操作)

    单链表增删改查(实现对水浒人物的增删改查操作) 前言 一.链表(Linked List)介绍 二.应用实例 1.问题描述 2.代码实现 总结 前言 参考:B站,尚硅谷数据结构与算法 课程 一.链表(L ...

最新文章

  1. 你负责人工智能哪部分?人工那部分:知识图谱的构建主要靠人工还是机器?...
  2. linux下C语言中的flock函数用法
  3. 代码不规范?985,211也不要!
  4. code review手记3
  5. 从婵媛的围脖上看到做产品的三个矛盾,思考ing......
  6. 插件占坑,四大组件动态注册前奏(三) 系统BroadCast的注册发送流程
  7. 策略模式 (Strategy)
  8. matlab学习心得与体会
  9. ❤The Matrix黑客帝国屏保!!!❤HTML实现及其傻瓜安装你值得拥有
  10. 【从零开始学习SLAM】ros navigation AMCL move_base配置文件 A-Star Dijkstra 算法原理
  11. MongoDB和Compass安装教程
  12. 快速乘 O(lgn) and O(1)
  13. 软件项目量化管理目标举例
  14. 【两周快速入门pr】三、定格动画制作-基础操作成就你的脑洞
  15. 公网部署freeswitch1.8.6后,终端注册成功后,在fs_cli控制台执行originate user/1000 echo,呼通1000的SIP终端后,终端讲话没有收到fs的回声解决方法
  16. PHP编写rss源(续)
  17. python编程怎么念_python怎么读 python的读法
  18. 调制 Modulation
  19. 追思心中璀璨的明星:杰出内核开发者李少华
  20. python可以数独游戏吗_简单实现python数独游戏

热门文章

  1. 安卓手机网易云视频,下载的文件位置:
  2. 面向大规模商业系统的数据库设计和实践
  3. Java FileReader读文件
  4. 5面阿里,终获offer(Java后端)
  5. 数学分析高等代数考研试题不断更新
  6. 鹏业安装算量复制工程量
  7. 用python做youtube自动化下载器!附完整代码!
  8. PLC网关 PLC远程控制调试
  9. feifeicms 人物标签调用
  10. 微信小程序名称、简称设置规范