Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2180074
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: 数据库开发技术

2011-09-12 21:23:28

第一次报告

研究题目:HBase的使用,实现以及与关系数据库的区别

本周我们组对HBase的使用进行了初步的了解和学习。

一.  HBase的定义

HBase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBaseHadoop之上提供了类似于Bigtable的能力。HBaseApacheHadoop项目的子项目。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.getHTable.getScanner都是返回一个ResultResult是一个KeyValue的链表。

5. 删除

使用Delete来删除记录,通过调用HTable.delete来执行删除操作。

6.

7. 新增,获取,删除在操作过程中会对操作的行加一个锁,而浏览不会。

8. Cluster的访问

客户端代码通过ZooKeeper来访问找到簇,也就是说ZooKeeper quorum将被用,那么相关的类应该在客户端的类目录下,即客户端一定要找到文件hbase-site.xml。

阅读(736) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~