实验四 HBase开发:使用java操作HBase

这篇具有很好参考价值的文章主要介绍了实验四 HBase开发:使用java操作HBase。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的

熟悉HBase数据库操作常用的Java API

二、实验平台

  1. 操作系统:CentOS 8
  2. Hadoop版本:3.2.3
  3. HBase版本:2.4.12
  4. jdk版本:1.8
  5. Java IDE:eclipse

三、实验过程

1. 创建表

  1. 创建项目
    在eclipse中创建项目,首先将先前下载的压缩包”hbase-2.4.12-tar.bin.gz"解压,然后将其目录下的lib目录下的所有jar包拷贝到项目的lib目录下,然后build to path,最后就可以编写代码了
    实验四 HBase开发:使用java操作HBase
  2. 创建表
    在HBase种创建dept和emp表,列都为data
    import java.io.IOException;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.Admin;
    import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
    import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
    import org.apache.hadoop.hbase.client.Connection;
    import org.apache.hadoop.hbase.client.ConnectionFactory;
    import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
    import org.apache.hadoop.hbase.util.Bytes;
    
    public class Task{
    	
    	public void createTable()throws Exception{
    		//获得Configuration对象
    		Configuration config=HBaseConfiguration.create();
    		//连接hbase
    		Connection connection=ConnectionFactory.createConnection(config);
    		//获取admin对象
    		Admin admin=connection.getAdmin();
    		//定义表名
    		TableName tableName1=TableName.valueOf("dept");
    		TableName tableName2=TableName.valueOf("emp");
    		//定义表对象
    		//HTableDescriptor htd=new HTableDescriptor(tableName);
    		TableDescriptorBuilder tableDescriptor1 = TableDescriptorBuilder.newBuilder(tableName1); 
    		TableDescriptorBuilder tableDescriptor2 = TableDescriptorBuilder.newBuilder(tableName2); 
    		//定义列族对象
    		//HColumnDescriptor hcd=new HColumnDescriptor("data");
    		ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();
    		//添加
    		// htd.addFamily(hcd);
    		tableDescriptor1.setColumnFamily(family);
    		tableDescriptor2.setColumnFamily(family);
    		//创建表
    		admin.createTable(tableDescriptor1.build());
    		admin.createTable(tableDescriptor2.build());
    	}
    }
    

2. 添加数据

在HBase中创建表tb_step2,列簇都为data,添加数据:

  • 行号分别为:row1,row2;
  • 列名分别为:1,2;
  • 值分别为:张三丰,张无忌。
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;

public class Tesk {

	public void insertInfo()throws Exception{
		//获得Configuration对象
		Configuration config=HBaseConfiguration.create();
		//连接hbase
		Connection connection=ConnectionFactory.createConnection(config);
		//获取admin对象
		Admin admin=connection.getAdmin();
		//定义表名
		TableName tableName=TableName.valueOf("tb_step2");
		//定义表对象
		TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName); 
		//定义列族对象
		ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();
		//添加
		tableDescriptor.setColumnFamily(family);
		//创建表
		admin.createTable(tableDescriptor.build());
		Table table = connection.getTable(tableName);//获取Table对象  
		try {  
			Put put1 = new Put(Bytes.toBytes("row1"));
			put1.addColumn(Bytes.toBytes("data"),Bytes.toBytes(String.valueOf(1)),Bytes.toBytes("张三丰"));
			Put put2 = new Put(Bytes.toBytes("row2"));
		put2.addColumn(Bytes.toBytes("data"),Bytes.toBytes(String.valueOf(2)),Bytes.toBytes("张无忌"));
			table.put(put1);
			table.put(put2);        //向表中添加数据
		} finally {  
			//使用完了要释放资源  
			table.close();  
		}  
	}
}

3. 获取数据

输出t_step3表中行号为row1,列族为data:1的值(以utf-8编码),输出table_step3表中所有行的行名称

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
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.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;

public class Tesk {
	
	public void queryTableInfo()throws Exception{
		//获得Configuration对象
		Configuration config=HBaseConfiguration.create();
		//连接hbase
		Connection connection=ConnectionFactory.createConnection(config);
		//创建表
		TableName tableName3 = TableName.valueOf("t_step3");
		Table table3 = connection.getTable(tableName3);//获取Table对象
		//获取数据
		Get get=new Get(Bytes.toBytes("row1"));
		//通过table对象获取数据
		Result result = table3.get(get); 
		byte[] valueBytes = result.getValue(Bytes.toBytes("data"), Bytes.toBytes("1")); //获取到的是字节数组  
		//将字节转成字符串  
		String valueStr = new String(valueBytes,"utf-8");  
		System.out.println("value:" + valueStr);
		TableName tableName3_1 = TableName.valueOf("table_step3");
		Table table3_1 = connection.getTable(tableName3_1);//获取Table对象
		Scan scan = new Scan();  
		ResultScanner scanner = table3_1.getScanner(scan);  
		try {  
			for (Result scannerResult: scanner) {  
				//System.out.println("Scan: " + scannerResult);  
				byte[] row = scannerResult.getRow();  
				System.out.println("rowName:" + new String(row,"utf-8"));  
			}  
		} finally {  
			scanner.close();  
		}  
		
	}
}

4. 删除表

删除t_step4表文章来源地址https://www.toymoban.com/news/detail-440309.html

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
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.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;

public class Tesk {
	
	public void deleteTable()throws Exception{
		//获得Configuration对象
		Configuration config=HBaseConfiguration.create();
		//连接hbase
		Connection connection=ConnectionFactory.createConnection(config);
		//获取admin对象
		Admin admin=connection.getAdmin();
		TableName tableName=TableName.valueOf("t_step4");
		admin.disableTable(tableName);
		admin.deleteTable(tableName);
		
	}
}

到了这里,关于实验四 HBase开发:使用java操作HBase的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云计算于大数据入门实验三——熟悉常用的 HBase 操作

    理解HBase在Hadoop体系结构中的角色 熟练使用HBase操作常用的shell命令 熟悉HBase操作常用的Java API 保存程序,并自行存档 最终的程序都必须经过测试,验证是正确的 按照实验报告格式,认真记录实验过程及结果,回答实验报告中的问题。实验报告模板在学习通的资料里面下载。

    2024年02月05日
    浏览(31)
  • HBase 开发:使用Java操作HBase

    通过Java代码操作HBase数据库,包括创建表、添加数据、获取数据和删除表等操作。学习如何使用HBaseConfiguration和ConnectionFactory连接HBase数据库,以及如何使用Admin对象创建表、Put对象添加数据、Get对象获取数据和删除表。

    2024年01月15日
    浏览(60)
  • 8-5 HBase 开发:使用Java操作HBase

    目录 第一关: 命令行: 代码: 第二关:添加数据 命令行: 代码: 第三关:获取数据 命令行: 代码: 第四关: 代码: 命令行: start-dfs.sh start-hbase.sh hadoop fs -ls /hbase 代码: 在 HBase 中创建表 dept,emp ,列都为: data Configuration config = HBaseConfiguration.create(); //使用create()静态方

    2024年02月03日
    浏览(27)
  • HBase 开发:使用Java操作HBase 第1关:创建表

    为了完成本关任务,你需要掌握:1.如何使用 Java 连接 HBase 数据库,2.如何使用 Java 代码在 HBase 中创建表。 如何使用Java连接HBase数据库 Java 连接 HBase 需要两个类: HBaseConfiguration ConnectionFactory HBaseConfiguration 要连接 HBase 我们首先需要创建 Configuration 对象,这个对象我们需要通

    2024年01月22日
    浏览(27)
  • HBase 开发:使用Java操作HBase 第4关:删除表

    本次关卡我们来学习本次实训最后一个内容,删除表。 和 HBase shell 的操作一样,在 Java 中我们要删除表,需要先禁用他,然后在删除它。 代码很简单: 编程要求 好了,到你啦,使用本关知识,在右侧编辑器 begin-end 处补充代码,编写代码删除 t_step4 表。

    2024年02月05日
    浏览(31)
  • 熟悉常用的HBase操作

    理解HBase在Hadoop体系结构中的角色; 熟练使用HBase操作常用的Shell命令; 操作系统:Linux Hadoop版本:3.1.3 HBase版本:2.2.2 JDK版本:1.8 1.用Hadoop提供的HBase Shell命令实现以下指定功能: 准备工作: 启动hbash: 进入shell: (1)列出HBase所有的表的相关信息,例如表名; (2)在终端打

    2023年04月17日
    浏览(28)
  • Hadoop 使用Linux操作系统与Java熟悉常用的HDFS操作

    注意看评论区获取完整代码资料 目录 一、实验目的 二、实验平台 三、实验步骤 理解HDFS在Hadoop体系结构中的角色; 熟练使用HDFS操作常用的Shell命令; 熟悉HDFS操作常用的Java API。 操作系统:Linux(建议Ubuntu16.04); Hadoop版本:2.7.1; JDK版本:1.8或以上版本; Java IDE:Eclipse。

    2024年02月03日
    浏览(42)
  • 实验2熟悉常用的HDFS操作

    (1)理解HDFS在Hadoop体系结构中的角色; (2)熟练使用HDFS操作常用的Shell命令; (3)熟悉HDFS操作常用的Java API。 (1)操作系统:Linux; (2)Hadoop版本:2.7.4 ; (3)JDK版本1.8; (4)Java IDE:eclipse  。 (一)编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务:

    2023年04月18日
    浏览(32)
  • 实验六:熟悉Hive的基本操作

    由于CSDN上传md文件总是会使图片失效 完整的实验文档地址如下: https://download.csdn.net/download/qq_36428822/85709631?spm=1001.2014.3001.5501 题目:实验六:熟悉Hive的基本操作 姓名:小猪猪 日期:2022/5/15 设备名称 LAPTOP-9KJS8HO6 处理器 Intel® Core™ i5-10300H CPU @ 2.50GHz 2.50 GHz 机带 RAM 16.0 GB (1

    2024年02月08日
    浏览(32)
  • 实验6 熟悉Hive的基本操作

    (1)理解 Hive 作为数据仓库在 Hadoop 体系结构中的角色。 (2)熟练使用常用的 HiveQL。 操作系统:Ubuntu18.04(或Ubuntu16.04); Hadoop版本:3.1.3; Hive版本:3.1.2; JDK版本:1.8。 准备工作: 由《Hive编程指南》(O’Reilly系列,人民邮电出版社)提供,下载地址: https://raw.githubuser

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包