• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

hbase-api-demo: hbase api 实例,项目对hbase api进行封装,创建表(预分区),删除 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

hbase-api-demo

开源软件地址:

https://gitee.com/boat824109722/hbase-api-demo

开源软件介绍:

hbase-api-demo

hbase api 实例,项目对hbase api进行封装,创建表(预分区),删除表,增删改查等(connection的创建)

hbase的预分区和rowkey的散列知识可以参考下面链接:

hbase系列-Hbase热点问题、数据倾斜和rowkey的散列设计

项目说明:

1、hbase-table-init 为初始化Hbase表结构模块,主要是利用哈希对Region进行预分区和划分splitkey的范围;
2、hbase-api-client 为客户端模块,主要是插入和查询 ,值得注意的是,hbase的connection获取是很慢的,这里采用了单例模式;
3、hbase-common 为存储一些工具类和共同变量的公共模块;

执行结果(集群共有3个节点,master60,node61,node62):

1、创建10个预分区

public class StudentInit {		public static void main(String[] args) {		try {			//如果表存在,则删除			HbaseTableInit.deleteTable(HbaseConstant.STUDENT);						//预分区,划分10个Region			HashChoreWoker worker = new HashChoreWoker(1000000, 10);			byte[][] splitKeys = worker.calcSplitKeys();			//创建表			HbaseTableInit.createTable(HbaseConstant.STUDENT, splitKeys, HbaseConstant.columnFamily);		} catch (Exception e) {			e.printStackTrace();		}	}}

创建分区后,10个分区均衡分布在集群的3个节点上(3\3\4),如下:输入图片说明

输入图片说明

2、向表中插入10000条数据

@Testpublic void testSaveBatch() throws Exception {	List<Student> students = new ArrayList<Student>();	for (int i = 0; i < 10000; i++) {		Student student = new Student();		student.setStuNO("2011410" + i);		student.setName("学生" + i);		student.setPhoneNum("1810000" + i);		student.setAge(18);		student.setIdCard("4417011992011" + i);		students.add(student);	}	try {		studentService.saveBatch(students);	} catch (Exception e) {		e.printStackTrace();	}}

插入数据后,各个节点的请求数如下(写请求均衡分布在10个region上,也就是均衡分布在3个节点上):输入图片说明

输入图片说明


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap