HBase基础编程

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: HBase基础编程


HBase基础编程

一、实验目标

  1. 掌握如何通过HBase shell命令来设计HBase表结构实例,从而理解HBase的列式存储结构
  2. 掌 握 java编程创建HBase表和删除HBase表。

二、实验要求及注意事项

  1. 给出每个实验的主要实验步骤、实现代码和测试效果截图。
  2. 对本次实验工作进行全面的总结分析。
  3. 所有程序需要本地测试和集群测试,给出相应截图。
  4. 建议工程名,类名或包名等做适当修改,显示个人学号或者姓名

三、实验内容及步骤

实验任务1:HBase表设计。通过HBase shell命令来设计并创建三张相关的表,其中后两张表可以关联起来,例如店铺与商品表。建议自拟表名和表内容。

主要实现步骤和运行效果图:

完整程序

create 'shop','info','item'
put 'shop','s_01','item:item_id','i_01'
put 'shop','s_01','info:name','iphone'
put 'shop', 's_01','info:address','tianmao'
put 'shop','s_01','info:regdate','11-11'
create 'Item','info','item'
put 'Item','i_01','item:shop_id','s_01'
put 'Item','i_01','info:name','iphone'
put 'Item','i_01','info:price','4534'
put 'Item','i_01','info:detail','ios10.3.2'
put 'Item','i_01','info:title','phoneOfApple'

程序分析

这是一组HBase的命令,主要是创建和操作两个表格——‘shop’和’Item’。

首先,在’shop’表格中添加一行数据,该行的行键为’s_01’,列限定符为’item:item_id’,值为’i_01’。然后,再在’shop’表格中添加三个列:‘info:name’,值为’iphone’;‘info:address’,值为’tianmao’;‘info:regdate’,值为’11-11’。

接下来,创建’Item’表格,并添加一行数据。该行的行键为’i_01’,列限定符为’item:shop_id’,值为’s_01’。然后,再添加四个列:‘info:name’,值为’iphone’;‘info:price’,值为’4534’;‘info:detail’,值为’ios10.3.2’;‘info:title’,值为’phoneOfApple’。

运行结果

实验任务2:使用Java编程创建表和删除表,表名和列族自拟。

主要实现步骤和运行效果图:

完整程序

WjwCreateTable

package hbase;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
public class WjwCreateTable {
  static Configuration conf;
  static{
    conf = new Configuration();
  }
  public static void createtb(String tbname, String[] tbfamily) throws Exception{
    HBaseAdmin admin = new HBaseAdmin(conf);
    HTableDescriptor hd = new HTableDescriptor(tbname);
    for(int i=0;i<tbfamily.length;i++){
      hd.addFamily(new HColumnDescriptor(tbname));
    }
    if(admin.tableExists(tbname)){
      System.out.println(tbname);
    }else{
      admin.createTable(hd);
      System.out.println("create table success");
    }
  }
  public static void deltb(String tbname) throws Exception{
    HBaseAdmin admin = new HBaseAdmin(conf);
    admin.disableTable(tbname);
    admin.deleteTable(tbname);
    if(admin.tableExists(tbname)){
      System.out.println(tbname+"is not exists");
    }else{
      System.out.println("success del");
    }
  }
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str[] = {"cf1"};
    createtb("wjw01", str);
  }
}

这是一个使用HBase Java API创建和删除表格的示例程序。

首先,在静态代码块中创建了一个Configuration对象,这是一个包含HBase的配置信息的对象。

然后,定义了一个名为’createtb’的方法,该方法接收两个参数:表格名和表格列族名。在该方法中,首先通过HBaseAdmin类创建了一个HBaseAdmin对象,然后通过HTableDescriptor类创建了一个HTableDescriptor对象,用于描述表格的结构。接着,通过循环遍历表格列族名数组,添加每个列族并将其加入HTableDescriptor对象中。最后,判断该表是否已经存在,如果存在则打印出表格名,否则调用HBaseAdmin的createTable方法创建表格,并打印出"create table success"。

然后,定义了一个名为’deltb’的方法,该方法接收一个参数:表格名。在该方法中,同样通过HBaseAdmin类创建了一个HBaseAdmin对象,并调用其disableTable方法禁用该表格,然后调用其deleteTable方法删除该表格。最后,判断该表是否已经被删除,如果未删除则打印出表格名和"is not exists",否则打印出"success del"。

最后,在main方法中调用createtb方法创建了一个名为"wjw01",列族名为"cf1"的表格。

WjwDeleteTable

package hbase;
import java. io. IOException;
import org. apache. hadoop. conf.*;
import org. apache. hadoop. hbase.HBaseConfiguration;
import org. apache. hadoop. hbase. MasterNotRunningException;
import org. apache. hadoop. hbase. ZooKeeperConnectionException;
import org. apache. hadoop. hbase. client. HBaseAdmin;
import org. apache. hadoop. hbase. client. HTable;
public class WjwDeleteTable {
  public Configuration conf;
  public HTable table;
  public HBaseAdmin admin;
  public void HBaseTest() throws MasterNotRunningException,
    ZooKeeperConnectionException, IOException {
    conf = HBaseConfiguration. create();
    conf. set("hbase. master", "master:60000");
    System. out. println(conf. get("hbase. master"));
    conf. set("hadoop. zkk. property. clientPort", "2181");
    System. out. println(conf. get("hadoop. zkk. property. clientPort"));
    conf. set("hbase. zookeeper. quorum", "master");
    System. out. println(conf. get("hbase. zookeeper. quorum"));
    admin= new HBaseAdmin(conf);
    table = new HTable(conf, "test01");
  }
  public static void main(String[] args) throws Exception {
    WJW02 hc = new WjwDeleteTable();
    hc. HBaseTest();
  }
}

这是一个使用HBase Java API删除表的示例程序。

首先,在HBaseTest方法中创建了一个Configuration对象,然后通过该对象设置了HBase集群的master和zookeeper相关参数,包括hbase.master、hadoop.zkk.property.clientPort和hbase.zookeeper.quorum。然后,创建了一个HBaseAdmin对象和一个HTable对象。

接着,在main方法中创建了一个WjwDeleteTable对象,并调用其HBaseTest方法进行HBase连接测试。

运行结果

相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
9月前
|
存储 分布式计算 Hadoop
分布式数据库HBase的常用操作的对应的API编程接口
HBase是一个分布式数据库系统,基于Google的BigTable和Apache Hadoop的HDFS构建。它提供了一个高性能、可扩展的数据库平台,适用于大规模的数据存储和处理。在阿里云开发者社区中,很多开发者都会使用HBase进行数据存储和处理。本文将介绍HBase的常用操作及其对应的API编程接口。
190 0
|
4月前
|
存储 分布式计算 Java
Hbase Java编程
Hbase Java编程
28 0
|
存储 Java 分布式数据库
HBase基础编程——HBase Java API编程
HBase基础编程——HBase Java API编程
HBase基础编程——HBase Java API编程
|
分布式数据库 数据库 Python
Python编程:happybase读写HBase数据库
Python编程:happybase读写HBase数据库
480 0
|
分布式计算 Java 大数据
【大数据计算】(二) HBase 的安装和基础编程
目录 1. 安装HBase 1.1 下载安装文件 1.2 配置环境变量 1.3 添加用户权限 1.4 查看HBase版本信息 2. HBase的配置 2.1 单机模式配置 2.1.1 配置hbase-env.sh文件 2.1.2 配置hbase-site.xml 2.1.3 启动Hbase 2.2 伪分布模式配置 2.2.1 配置hbase-site.xml 3. HBase常用的Shell命令 3.1 在HBase中创建表 3.2 添加数据 3.3 查看数据 3.4 删除数据 3.5 删除表 3.6 查询历史记录 3.7 退出HBase数据库 4. HBase编程实践 4.1 编程题 API
165 0
【大数据计算】(二) HBase 的安装和基础编程