HBase-初看HBase


0.95版本
hbase 单机模式下所有的服务都运行在一个JVM上,包括HBase和zookeeper。使用的是本地文件系统

日志默认放在目录下logs文件夹中

基本命令:
 create 'table','cf'  //创建一个table名字的表,cloumn family为cf
 put 'table','row1','cf:a','value1' //插入table表中一条数据,row1为key值,a为列名,value1为值
 list ‘table’  //列出所有的表。table不是表名
 scan ‘table’  //查看表中所有数据
 get ‘table’,‘row1’ //取数据
 disable ‘table’ //?
 drop ‘table’;//删除表

hbase 分默认配置文件和用户自定义配置文件


hbase要求本地换回地址必须是127.0.0.1,不能是127.0.1.1等。Ubuntu默认是127.0.1.1

常用的Linux最大文件句柄不能满足hbase的要求,默认1024,设置到10K

sync 持久化同步

hbase的hadoop.jar必须和hadoop的hadoop.jar保持一致

hadoop hdfs有一个同时处理文件数的上限,这个上限至少要为4096,dfs.datanode.max.xcievers

hbase 分单机、伪分布式、完全分布式。和hadoop相同

hbase的数据目录hbase.rootdir要让它自己创建,不要自己创建

使用完全分布式模式,要把hbase.cluster.distributed 设置为true

hbase的conf/regionservers相当于hadoop的conf/slaves或者etc/slaves

一个分布式的hbase依赖一个zookeeper集群

hbase默认master端口 60000

hbase判断宕机默认为失联3分钟

hbase的表是按key排序的


使用HBase的时候要让HBase的版本和hadoop的对应才行,不然会出很多问题。方法有两种,一种是用hadoop的jar包替换HBase里面的hadoop jar包,强迫它们对应起来;另一种就是找到原配,根据hadoop的版本去选择HBase的版本;

我更倾向于第二种。查看方法是看HBase 的lib中hadoop相关的jar包的版本。

在稳定版本中它们大概的对应关系为:

可以看到,在一些过渡版本比如0.96.2、0.98.7有hadoop1.x和2.x的不同版本。


至于HBase与hadoop其他组件之间的关系,我读到一个帖子,感觉非常受用(虽然它的题目是HBase简介,但是我觉得它的题目更适合叫HBase与其他hadoop子项目之间的关系)

引用自:http://www.aboutyun.com/thread-6138-1-1.html

其中HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。
此外,PigHive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

(才知道RDBMS是这么个东西)


HBase通过row和column确定一份数据,这份数据的值可能有多个版本,为什么会存在多个版本?
查询的时候会显示那个版本?
保证数据不被修改,查询时总是显示最新版本 


 存储类型


TableName 是字符串
RowKey 和 ColumnName 是二进制值(Java 类型 byte[])
Timestamp 是一个 64 位整数(Java 类型 long)
value 是一个字节数组(Java类型 byte[])。


可以简单的将HTable的存储结构理解为


 Hbase的优点
1 列的可以动态增加,并且列为空就不存储数据,节省存储空间.

2 Hbase自动切分数据,使得数据存储自动具有水平scalability.

3 Hbase可以提供高并发读写操作的支持

Hbase的缺点:

1 不能支持条件查询,只支持按照Row key来查询.

2 暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉.


HBase和传统型数据库的区别(http://www.aboutyun.com/thread-7804-1-1.html


欲为大树,何与草争;心若不动,风又奈何。
原文地址:https://www.cnblogs.com/admln/p/trivial-firstHBase.html