集群环境下的安装部署:
配置一个10个节点的集群。节点的名字分别是master.foo.com,host1.foo.com到host9.foo.com。
HBase master与HDFS NameNode都运行在master.foo.com上。
Region服务器运行在host1.foo.com到host9.foo.com上。
3个节点的ZooKeeper分别运行在zk1.foo.com,zk2.foo.com,zk2.foo.com。
ZooKeeper的元数据目录设置为/var/zookeeper。
主要配置文件——hbase-site.xml、regionservers、hbase-env.sh都可以再Hbase的conf目录下找到。
配置如下:
1.hbase-site.xml
<configuration> <property> <name>hbase.zookeeper.quorum</name> <value>zk1.foo.com,zk2.foo.com,zk3.foo.com</value> </ property > <property> <name>hbase.zookeeper.property.dataDir</name> <value>/var/zookeeper</value> </ property > <property> <name>hbase.rootdir </name> <value>hdfs://master.foo.com:9000/hbase </value> </ property > <property> <name>dfs.replication </name> <value>3 </value> </ property > <property> <name>hbase.cluster.distributed </name> <value>true </value> </ property > </ configuration>
2.regionservers
记录所有region服务器的主机列表。
host1.foo.com host2.foo.com host3.foo.com host4.foo.com host5.foo.com host6.foo.com host7.foo.com host8.foo.com host9.foo.com
3.hbase-env.sh
HBase的环境变量等信息需要在这个文件中设置。例如,Hbase守护进程的JVM启动参数:Java堆大小和垃圾回收策略。
还可以设置HBase配置文件的目录、日志目录、SSH选项、进程pid文件的目录等。
改变配置后需要重启HBase才能生效。
这里我们将HBase的堆设置为4GB,以替代默认的1GB。
export HBASE_HEAPSIZE=4096 export HBASE_MANAGES_ZK=false
--不依赖Hbase管理集群
配置HBase自己管理ZK:
例:如果需要HBase在节点rs{1,2,3,4,5}.foo.com上管理ZooKeeper,并绑定客户端服务端口2222(默认2181)。
conf/hbase-env.sh export HBASE_MANAGES_ZK=true
在conf/hbase-site.xml配置zk相关信息:
<property> <name>hbase.zookeeper.quorum</name> <value>zk1.foo.com,zk2.foo.com,zk3.foo.com</value> </ property > <property> <name>hbase.zookeeper.property.dataDir</name> <value>/var/zookeeper</value> </ property > <property> <name>hbase.zookeeper.property.clientPort </name> <value>2222 </value> </ property >
注意:一旦用户编辑完配置文件,就需要文件同步到集群的所有服务器上。
用户可以使用rsync完成这项工作。
集群中每台集群上的配置都相同,每台机器都可以作为master
如:rsync -vaz /usr/local/hbase /usr/local
Hbase命令操作
Hbase管理命令:
Start-hbase.sh --启动hbase数据库
Hbase shell --进入hbase shell界面
Exit --退出hbase shell界面
Stop-hbase.sh --关闭数据库
hbase-daemon.sh start master --启动master
hbase-daemon.sh start master -backup 启动备份的master
hbase-daemon.sh stop regionserver 停止region
balance_switch false 关闭负载均衡
Graceful_stop.sh hostname 关闭hostname主机上的hbase(先移region,之后关闭)
balance_switch true 启动负载均衡
启动成功的守护进程:
HMaster
HQuarumPeer ——如果是ZooKeeper自己管理则是QuorumPeerMain
HRegionServer
ThriftServer
通用命令:
Status --提供Hbase的状态,如:服务器的数量
Version --提供正在使用Hbase的版本
Table_help --表引用命令提供帮助
Whoami --提供有关用户的信息
Debug --切换调试模式,非调试模式shell日志级别是error,不会在控制台打印
Debug? --查看当前的调试模式
数据定义语言
Create ‘test’,’cf1’ 创建表test,有一个cf1的列族
List --展示所有表
--删除表之前,一定要先将其禁用
Disable ‘test’
Is_disabled --验证表是否被禁用
Enable --启用一个表
Is_enabled 验证表是否已启用
Alter 改变一个表
Alter ‘test’,readonly(option) --设置表为只读
Alter ‘test’,’delete’=>’professional’ --删除指定列族professional
Drop ‘test’
Disable_all 用于禁用所有匹配给定正则表达式的表
Drop_all ‘t.*’ --删除匹配regex表,也要向禁用表
Exists ‘test’ 判断表是否存在
数据操纵语言
Put ‘test’,’row1’,’cf1’,’val1’
Put ‘test’,’row1’,’cf1’,’val2’ --没有更新语句,直接覆盖
Scan ‘test’ --查看表下的所有数据
Scan ‘test’,{versions=>3}
get ‘test’,’row1’,’cf1’ --获取单元格数据
get_counter --返回一个计数器数值
incr --给计数器加1
delete ‘test’,’row1’,’cf1’,’ql1’ --删除特定单元格
deleteall ‘test’,’row1’ --删除row1的所有单元格
count --计数并返回表中的行的数目
truncate --清空表数据
表授权语句:
Grant 授权
Revoke 撤销用户权限
User_permission 列出特定表的所有权限
R - 代表读取权限
W - 代表写权限
X - 代表执行权限
C - 代表创建权限
A - 代表管理权限
Grant ‘Tutorialspoint’,’RWXCA’ --授予用户所有权限
Revoke ‘Tutorialspoint’ --撤销用户所有权限
User_permission ‘emp’ --查看emp表的所有用户权限
工具:
Assign --分配一个region到一台region服务器
Balance_switch --切换负载均衡状态
Balancer --启动负载均衡
Close_region --关闭一个region
Compact --开启某个region或一张表的异步合并操作
Move --移动一个region到不同的服务器中
Split --拆分一个region或一张表
Unassign --下线一个region
执行shell脚本:
Echo “status” | hbase shell
Cat ~/hbase-shell-status.rb
Hbase shell ~/hbase-shell-status.rb