Hbase集群:


hbase数据库怎么建sequence hbase数据库搭建_hbase数据库怎么建sequence


HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

上传 

hbase数据库怎么建sequence hbase数据库搭建_xml_02

 解压到software目录下:

1、配置系统环境变量:

切换到root下配置:可以 su -lc “vi /etc/profile”

 

tail -5 /etc/profile 检查

2、分发系统配置文件到其它节点上:

su -lc "scp -r /etc/profile slave01:/etc/"

配置好后都执行该命令source /etc/profile 让配置生效

 

hbase数据库怎么建sequence hbase数据库搭建_xml_03

3、切换到cd /software/hbase-1.2.6/conf 目录下

修改vi hbase-env.sh

 

hbase数据库怎么建sequence hbase数据库搭建_xml_04

关闭HBase内置的zookeeper实现,准备启用外接的zookeeper来实现

 

hbase数据库怎么建sequence hbase数据库搭建_zookeeper_05

4、修改配置:

vi hbase-site.xml 

 

hbase数据库怎么建sequence hbase数据库搭建_zookeeper_06

5、修改:vi regionservers

 

hbase数据库怎么建sequence hbase数据库搭建_zookeeper_07

6、分发Hbase的安装目录,拷贝到slave的其它节点上去

[hadoop@master01 software]$  scp -r hbase-1.2.6/ slave01:/software/

7、拷贝hadoop配置文件到hbase配置目录(每个节点上都执行一遍)

cp -a /software/hadoop-2.7.3/etc/hadoop/{core-site.xml,hdfs-site.xml} /software/hbase-1.2.6/conf/

1、打开zookeeper

2、打开hdfs集群  顺便查看是否是active角色不是就进行强制转换

3、start-hbase.sh  启动hbase集群 stop-hbase.sh关闭集群

4、强制启动进程:hbase-daemon.sh start Master

Master节点

hbase数据库怎么建sequence hbase数据库搭建_hbase数据库怎么建sequence_08

slave节点

hbase数据库怎么建sequence hbase数据库搭建_hbase数据库怎么建sequence_09

如需手动启动HM进程则 如:master02 就需要手动启动

(hbase-daemon.sh start master  

 hbase-daemon.sh start regionserver )

http://192.168.163.128:16010 mater01的网址 + :16010 可在浏览器查看

hbase数据库怎么建sequence hbase数据库搭建_zookeeper_10

active角色cat hbase-hadoop-master-master01.log|grep ActiveMasterManager 或者这样查

 

5、使用:

切换到hadoop用户cd /software/目录下

进入:hbase shell

①list_namespace 查看表空间

②list_namespace_tables 'default'查看表空间and其空间的表

③create_namespace 'bunfly'  创建表空间

④drop_namespace 'bunfly   删除表空间

⑤create ’bunfly:t_user',{NAME=>'baseinfo',VERSIONS=>5},{NAME=>'extrainfo',VERSIONS=>3}             创建表

{}里是列族,是值的集合

第一个{}是基础列族,后面的是扩展列族(可有可无)

⑥describe

⑦alter’bunfly:t_user',{NAME=>'baseinfo',VERSIONS=>5},{NAME=>'extrainfo',VERSIONS=>33}       修改表数据

删除表

drop ‘bunfly:t_user’之前要进行命令 is_disabled 'bunfly:t_user'

返回true后 进行

exists 'bunfly:t_use 可以进行查看是否被删除

 

命名空间的DDL语法为:xxx_namespace 'namespace'
表的DDL操作语法是:
xxx 'namespace:tabname',{NAME='yyyy',VERSION='number',METHOD='delete'}。。。。。
创建表时xxx为create,删除表时使用drop,且没有列族定义列表,修改表时操作为alter,
同时根据NAME属性值是否存在来判定是添加、删除、还是修改列

⑧添加数据:

put 'bunfly:t_zhou','001','base:username','lihua'

‘行键’‘Key(列族的名字:列的名字)’,Value

⑨:查询

get 'bunfly:t_zhou','001','base:username'

⑩:put 'bunfly:t_zhou','001','base:username','huanglei'

若该数据不存在就添加,存在就修改

11.查询,version=>3查看历史最近的三个版本的修改

get'bunfly:t_zhou','001',{COLUMN=>'base:username',VERSION=>3}

12.删除:delete 'bunfly:t_zhou','001','base:username'

13.count 'bunfly:t_zhou'以行键为计数的

表数据的结构:

 

hbase数据库怎么建sequence hbase数据库搭建_HBase_11

14. 过滤:

get 'bunfly:t_zhou','002',{FILTER=>"ValueFilter(=,'substring:huantian')"}
scan 'bunfly:t_zhou',{FILTER=>"ValueFilter(=,'substring:luemeng')"}

15. 扫描:scan 'bunfly:t_zhou

scan 'bunfly:t_zhou',{COLUMN=>'base'} 模糊查询从整个表
scan 'bunfly:t_zhou',{COLUMN=>'base:username',STARTROW=>'003'}
scan ’bunfly:t_zhou',{COLUMN=>'base:username',STARTROW=>'002',ENDROW=>'004'}
scan 'bunfly:t_zhou',{COLUMN=>'base:userage'}

16. 分页:

scan'bunfly:t_zhou',{COLUMN=>'base:username',STARTROW=>'002',LIMIT=>3}

交互式方式:

echo "scan 'bunfly:t_user',{COLUMN=>'base:username'}" | hbase shell | grep 002

最后就可以CloudDeskTop桌面版上面eclipse进行java代码的一系列操作