[size=x-large][b]HBase是什么? [/b][/size]
HBase是Apache Hadoop中的一个子项目,[color=red][b]Hbase依托于Hadoop的HDFS作为最基本存储基础单元[/b][/color],通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作。
HBase在产品中还包含了Jetty,[color=red][b]在HBase启动时采用嵌入式的方式来启动Jetty[/b][/color],因此[color=red][b]可以通过web界面对HBase进行管理和查看当前运行的一些状态[/b][/color],非常轻巧。
[img]http://dl2.iteye.com/upload/attachment/0123/8373/43b2563b-aacc-3f32-aee9-f3cf7b27036d.png[/img]
[size=x-large][b]为什么采用HBase?[/b][/size]
HBase不同于一般的关系数据库,[color=red][b]它是一个适合于非结构化数据存储的数据库。[/b][/color]所谓非结构化数据存储就是说[color=blue][b]HBase是基于列的而不是基于行的模式[/b][/color],这样方便读写你的大数据内容。
[size=large][color=blue][b]HBase是面向列的数据库[/b][/color][/size]
[size=medium][color=red][b]HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。[/b][/color][/size]就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是[color=blue][b]所谓的松散数据[/b][/color]。
简单来说,你在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,[color=red][b]在HBase中没有表与表之间关联查询。[/b][/color]你只需要 告诉你的数据存储到Hbase的那个column families 就可以了,[color=red][b]不需要指定它的具体类型:char,varchar,int,tinyint,text等等。[/b][/color]但是你[size=medium][b]需要注意HBase中不包含事务此类的功能。[/b][/size]
Apache HBase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。[color=red][b]表是疏松的存储的,因此用户可以给行定义各种不同的列[/b][/color],对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。
[size=x-large][b]如何运行HBase?[/b][/size]
从 Apache的HBase的镜像网站上下载一个稳定版本的HBase http://mirrors.devlib.org/apache/hbase/stable/hbase-0.20.6.tar.gz, 下载完成后,对其进行解压缩。确定你的机器中已经正确的安装了Java SDK、SSH,否则将无法正常运行。
进入此目录
编辑 conf/hbase-env.sh 文件,将JAVA_HOME修改为你的JDK安装目录
输入你的所有HBase服务器名,localhost,或者是ip地址
启动hbase, 中间需要你输入两次密码,也可以进行设置不需要输入密码,启动成功。
启动hbase REST服务后就可以通过对uri: http://localhost:60050/api/ 的[color=blue][b]通用REST操作(GET/POST/PUT/DELETE)实现对hbase的REST形式数据操作.[/b][/color]
也可以输入以下指令进入HQL指令模式
关闭HBase服务
HBase是Apache Hadoop中的一个子项目,[color=red][b]Hbase依托于Hadoop的HDFS作为最基本存储基础单元[/b][/color],通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作。
HBase在产品中还包含了Jetty,[color=red][b]在HBase启动时采用嵌入式的方式来启动Jetty[/b][/color],因此[color=red][b]可以通过web界面对HBase进行管理和查看当前运行的一些状态[/b][/color],非常轻巧。
[img]http://dl2.iteye.com/upload/attachment/0123/8373/43b2563b-aacc-3f32-aee9-f3cf7b27036d.png[/img]
[size=x-large][b]为什么采用HBase?[/b][/size]
HBase不同于一般的关系数据库,[color=red][b]它是一个适合于非结构化数据存储的数据库。[/b][/color]所谓非结构化数据存储就是说[color=blue][b]HBase是基于列的而不是基于行的模式[/b][/color],这样方便读写你的大数据内容。
[size=large][color=blue][b]HBase是面向列的数据库[/b][/color][/size]
[size=medium][color=red][b]HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。[/b][/color][/size]就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是[color=blue][b]所谓的松散数据[/b][/color]。
简单来说,你在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,[color=red][b]在HBase中没有表与表之间关联查询。[/b][/color]你只需要 告诉你的数据存储到Hbase的那个column families 就可以了,[color=red][b]不需要指定它的具体类型:char,varchar,int,tinyint,text等等。[/b][/color]但是你[size=medium][b]需要注意HBase中不包含事务此类的功能。[/b][/size]
Apache HBase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。[color=red][b]表是疏松的存储的,因此用户可以给行定义各种不同的列[/b][/color],对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。
[size=x-large][b]如何运行HBase?[/b][/size]
从 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/ 的[color=blue][b]通用REST操作(GET/POST/PUT/DELETE)实现对hbase的REST形式数据操作.[/b][/color]
$ bin/hbase rest start
也可以输入以下指令进入HQL指令模式
$ bin/hbase shell
关闭HBase服务
$ bin/stop-hbase.sh