Hadoop HBase入门学习

HBase是什么?
HBase是Apache Hadoop中的一个子项目, Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作。
HBase在产品中还包含了Jetty, 在HBase启动时采用嵌入式的方式来启动Jetty,因此 可以通过web界面对HBase进行管理和查看当前运行的一些状态,非常轻巧。



为什么采用HBase?
HBase不同于一般的关系数据库, 它是一个适合于非结构化数据存储的数据库。所谓非结构化数据存储就是说 HBase是基于列的而不是基于行的模式,这样方便读写你的大数据内容。

HBase是面向列的数据库

HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是 所谓的松散数据

简单来说,你在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加, 在HBase中没有表与表之间关联查询。你只需要 告诉你的数据存储到Hbase的那个column families 就可以了, 不需要指定它的具体类型:char,varchar,int,tinyint,text等等。但是你 需要注意HBase中不包含事务此类的功能。

Apache HBase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。 表是疏松的存储的,因此用户可以给行定义各种不同的列,对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。

如何运行HBase?
从 Apache的HBase的镜像网站上下载一个稳定版本的HBase http://mirrors.devlib.org/apache/hbase/stable/hbase-0.20.6.tar.gz, 下载完成后,对其进行解压缩。确定你的机器中已经正确的安装了Java SDK、SSH,否则将无法正常运行。

进入此目录
$ cd /work/hbase


编辑 conf/hbase-env.sh 文件,将JAVA_HOME修改为你的JDK安装目录
$ vim conf/hbase-env.sh
export JAVA_HOME=/JDK_PATH


输入你的所有HBase服务器名,localhost,或者是ip地址
$ vim conf/regionservers


启动hbase, 中间需要你输入两次密码,也可以进行设置不需要输入密码,启动成功。
$ bin/start-hbase.sh


启动hbase REST服务后就可以通过对uri: http://localhost:60050/api/ 的 通用REST操作(GET/POST/PUT/DELETE)实现对hbase的REST形式数据操作.
$ bin/hbase rest start


也可以输入以下指令进入HQL指令模式
$ bin/hbase shell


关闭HBase服务
$ bin/stop-hbase.sh


猜你喜欢

转载自forlan.iteye.com/blog/2364488