HBase 入门,
来源:https://www.yiibai.com/hbase
Hadoop的限制
Hadoop只能执行批量处理,并且只以顺序方式访问数据。这意味着必须搜索整个数据集,即使是最简单的搜索工作。
当处理结果在另一个庞大的数据集,也是按顺序处理一个巨大的数据集。在这一点上,一个新的解决方案,需要访问数据中的任何点(随机访问)单元。
HBase是什么?
HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。
HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的一部分。
人们可以直接或通过HBase的存储HDFS数据。使用HBase在HDFS读取消费/随机访问数据。
HBase的存储机制
HBase是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列。后续列的值连续地存储在磁盘上。表中的每个单元格值都具有时间戳。总之,在一个HBase:
- 表是行的集合。
- 行是列族的集合。
- 列族是列的集合。
- 列是键值对的集合。
一 基本操作
1 创建表
create ‘<table name>’,’<column family>’
hbase(main):002:0> create 'emp', 'personal data', ’professional data’
2 验证创建
hbase(main):002:0> list
3 表的操作
1 禁用表
disable ‘emp’
2 判断是否被禁用
hbase> is_disabled 'table name'
3 禁用所有匹配给定正则表达式的表,下面的代码将禁用所有以 raj 开始的表
hbase(main):002:0> disable_all 'raj.*'
4 启用表
enable ‘emp’
5 扫描表
hbase(main):006:0> scan 'emp'
6 判断是否被启用
is_enabled 'table name'
7 修改表
alert
8 确定表存在
exists 'emp'
3 使用Java API创建一个表:可以使用HBaseAdmin类的createTable()方法创建表在HBase中。这个类属于org.apache.hadoop.hbase.client 包。
1 实例化HBaseAdmin
Configuration conf = HBaseConfiguration.create();
HBaseAdmin admin = new HBaseAdmin(conf);
2 创建TableDescriptor
//creating table descriptor
HTableDescriptor table = new HTableDescriptor(toBytes("Table name"));
//creating column family descriptor
HColumnDescriptor family = new HColumnDescriptor(toBytes("column family"));
//adding coloumn family to HTable
table.addFamily(family);
3 执行
admin.createTable(table);
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。