Hbase集群:
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
上传
解压到software目录下:
1、配置系统环境变量:
切换到root下配置:可以 su -lc “vi /etc/profile”
tail -5 /etc/profile 检查
2、分发系统配置文件到其它节点上:
su -lc "scp -r /etc/profile slave01:/etc/"
配置好后都执行该命令source /etc/profile 让配置生效
3、切换到cd /software/hbase-1.2.6/conf 目录下
修改vi hbase-env.sh
关闭HBase内置的zookeeper实现,准备启用外接的zookeeper来实现
4、修改配置:
vi hbase-site.xml
5、修改:vi regionservers
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节点
slave节点
如需手动启动HM进程则 如:master02 就需要手动启动
(hbase-daemon.sh start master
hbase-daemon.sh start regionserver )
http://192.168.163.128:16010 mater01的网址 + :16010 可在浏览器查看
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'以行键为计数的
表数据的结构:
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代码的一系列操作