全部博文(436)
分类: 数据库开发技术
2011-09-12 21:23:28
第一次报告
研究题目:HBase的使用,实现以及与关系数据库的区别
本周我们组对HBase的使用进行了初步的了解和学习。
一. HBase的定义
HBase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式。
在下一个版本Hive 0.7.0中将会支持HBase,可以使用类似SQL语言来访问HBase。
二. HBase基本使用语言
1. 对表的创建、删除、显示以及修改等,可以用HBaseAdmin,一旦创建了表,那么可以通过HTable的实例来访问表,每次可以往表里增加数据。
2. 创建一个Put对象,在这个Put对象里可以指定要给哪个列增加数据,以及当前的时间戳等值,然后通过调用HTable.put来提交操作。
3. 要获取数据,使用Get对象,Get对象和Put对象一样有好几个构造函数,通常在构造的时候传入行值,表示取第几行的数据,通过HTable.get来调用。
4. 通过Scan可以对表中的行进行浏览,得到每一行的信息,比如列明,时间戳,Scan相当于一个游标,通过next()来浏览下一个,通过调用HTable.getScanner来返回一个ResultScanner对象。HTable.get和HTable.getScanner都是返回一个Result。Result是一个KeyValue的链表。
5. 删除
使用Delete来删除记录,通过调用HTable.delete来执行删除操作。
6. 锁
7. 新增,获取,删除在操作过程中会对操作的行加一个锁,而浏览不会。
8. Cluster的访问
客户端代码通过ZooKeeper来访问找到簇,也就是说ZooKeeper quorum将被用,那么相关的类应该在客户端的类目录下,即客户端一定要找到文件hbase-site.xml。