欢迎投稿

今日深度:

HBase 入门,

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);

 

www.htsjk.Com true http://www.htsjk.com/hbase/40143.html NewsArticle HBase 入门, 来源:https://www.yiibai.com/hbase Hadoop的限制 Hadoop只能执行批量处理,并且只以顺序方式访问数据。这意味着必须搜索整个数据集,即使是最简单的搜索工作。 当处理结果在另...
相关文章
    暂无相关文章
评论暂时关闭