0


HBase基础编程

文章目录

HBase基础编程

一、实验目标

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

二、实验要求及注意事项

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

三、实验内容及步骤

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

1

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

完整程序

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’。

运行结果

1-1
1-2

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

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

完整程序

WjwCreateTable

packagehbase;importorg.apache.hadoop.hbase.client.HBaseAdmin;importorg.apache.hadoop.conf.*;importorg.apache.hadoop.hbase.*;publicclassWjwCreateTable{staticConfiguration conf;static{
        conf =newConfiguration();}publicstaticvoidcreatetb(String tbname,String[] tbfamily)throwsException{HBaseAdmin admin =newHBaseAdmin(conf);HTableDescriptor hd =newHTableDescriptor(tbname);for(int i=0;i<tbfamily.length;i++){
            hd.addFamily(newHColumnDescriptor(tbname));}if(admin.tableExists(tbname)){System.out.println(tbname);}else{
            admin.createTable(hd);System.out.println("create table success");}}publicstaticvoiddeltb(String tbname)throwsException{HBaseAdmin admin =newHBaseAdmin(conf);
        admin.disableTable(tbname);
        admin.deleteTable(tbname);if(admin.tableExists(tbname)){System.out.println(tbname+"is not exists");}else{System.out.println("success del");}}publicstaticvoidmain(String[] args){// TODO Auto-generated method stubString 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

packagehbase;importjava. io.IOException;importorg. apache. hadoop. conf.*;importorg. apache. hadoop. hbase.HBaseConfiguration;importorg. apache. hadoop. hbase.MasterNotRunningException;importorg. apache. hadoop. hbase.ZooKeeperConnectionException;importorg. apache. hadoop. hbase. client.HBaseAdmin;importorg. apache. hadoop. hbase. client.HTable;publicclassWjwDeleteTable{publicConfiguration conf;publicHTable table;publicHBaseAdmin admin;publicvoidHBaseTest()throwsMasterNotRunningException,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=newHBaseAdmin(conf);
        table =newHTable(conf,"test01");}publicstaticvoidmain(String[] args)throwsException{WJW02 hc =newWjwDeleteTable();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连接测试。

运行结果

2-1
2-2

附:系列文章

实验文章目录直达链接实验01Hadoop安装部署https://want595.blog.csdn.net/article/details/132767284实验02HDFS常用shell命令https://want595.blog.csdn.net/article/details/132863345实验03Hadoop读取文件https://want595.blog.csdn.net/article/details/132912077实验04HDFS文件创建与写入https://want595.blog.csdn.net/article/details/133168180实验05HDFS目录与文件的创建删除与查询操作https://want595.blog.csdn.net/article/details/133168734实验06SequenceFile、元数据操作与MapReduce单词计数https://want595.blog.csdn.net/article/details/133926246实验07MapReduce编程:数据过滤保存、UID 去重https://want595.blog.csdn.net/article/details/133947981实验08MapReduce 编程:检索特定群体搜索记录和定义分片操作https://want595.blog.csdn.net/article/details/133948849实验09MapReduce 编程:join操作和聚合操作https://want595.blog.csdn.net/article/details/133949148实验10MapReduce编程:自定义分区和自定义计数器https://want595.blog.csdn.net/article/details/133949522


本文转载自: https://blog.csdn.net/m0_68111267/article/details/134229190
版权归原作者 Want595 所有, 如有侵权,请联系我们删除。

“HBase基础编程”的评论:

还没有评论