HBase服务器体系架构遵从主从服务器架构:一个HBase Master和若干个HRegion服务器。其中HBase Master服务器负责管理所有的HRegion服务器,而HBase服务器通过ZooKeep进行协调,并处理HBase服务器群运行期间产生的错误。在此,首先对ZooKeeper进行配置:
一、ZooKeeper配置
关于ZooKeeper具体介绍:
1、下载zookeeper
http://www.apache.org/dyn/closer.cgi/zookeeper/
2、解压zookeeper到安装目录
tar -zxvf zookeeper-3.4.10-bin.tar.gz /usr/hadoop/
3、添加环境变量
4、zoo.fcg配置
cp conf/zoo_sample.cfg conf/zoo.cfg
(1)、tickTime:心跳时间,毫秒为单位。
(2)、initLimit:初始化最长心跳时间间隔,超过10个心跳时间ZooKeeper服务器还没有收到客户端返回信息,则表示这个客户端连接失败。
(3)、syncLimit:表示Leader和Fllower之间发送消息、请求和应答时间长度,最长不能超过多少个tickTime时间长度。
(4)、dataDir:存储内存中数据库快照的位置。
(5)、clientPort:监听客户端连接的端口。
(6)、server.A=B:C:D:其中A表示第几号服务器;B表示这个服务器IP地址;C表示这个服务器与集群中的leader服务器交换信息的端口;D表示万一集群中leader服务器挂了,需要通过选举算法重新选举leader,这个端口用来执行选举时服务器相互通信的端口。
5、配置myid
在节点配置的dataDir指定目录下,创建myid文件,内容为id(server.x中x值)数字,用来标识当前主机,例如:echo“1” > myid
6、将master节点zookeeper安装配置文件分发到其他节点(注意修改其他节点myid)
例如:scp -r /usr/hadoop/zookeeper-3.4.10 hadoop@slave1:/usr/hadoop
7、查看zookeeper状态(jps),正常状态为:
若存在QuorumPeerMain,则启动正常
8、若集群上安装了Hadoop、HBase、ZooKeeper
启动次序:Hadoop(start-all.sh)—>ZooKeeper(zkServer.sh start)—>HBase(start-hbase.sh)
停止次序:HBase(stop-hbase.sh)—>ZooKeeper(zkServer.sh stop)—>Hadoop(stop-all.sh)
二、配置(master中配置HBase)
1、下载HBase
http://www.apache.org/dyn/closer.cgi/hbase/
2、解压HBase到安装目录
tar -zxvf hbase-1.1.10-bin.tar.gz /usr/hadoop/
3、添加环境变量
4、配置hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111
export HBASE_CLASSPATH=/usr/hadoop/hbase-1.1.10/conf
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=false
注:HBase有一个自带的zookeeper(默认ZooKeeper实例),在单机模式下运行比较好。而在全分布式模式下,为了方便管理,一般把zookeeper独立出来。在conf/hbase-env.sh修改行:export HBASE_MANAGES_ZK=false,以此告诉HBase不需要自己维护Zookeeper。
如果使用默认ZooKeeper实例,HBase将自动启动或停止ZooKeeper;使用独立ZooKeeper实例,需要手动启动或停止ZooKeeper实例。
5、配置hbase-site.xml
三、在Hadoop集群中运行HBase
1、将master配置好的HBase文件拷贝到其他节点
scp -r /usr/hadoop/hbase1.1.10 hadoop@slave1:/usr/hadoop
scp -r /usr/hadoop/hbase1.1.10 hadoop@slave1:/usr/hadoop
2、将master配置好的环境变量拷贝到其他节点
scp -r ~/.bashrc hadoop@slave1: ~/.bashrc
scp -r ~/.bashrc hadoop@slave2: ~/.bashrc
3、依次执行
$start-all.sh
$zkServer.sh start //启用ZooKeeper
$start-hbase.sh //启用HBase
$hbase shell
四、HBase Shell使用
1、常用shell命令
2、create ‘表名’, ‘列名1’,’列名2’,……,’列名N’,
hbase> create ‘test1’, {Name => ‘f1’, VERSION => 5}
3、list ‘表名称’
4、put ‘表名称’,’行名’,’列名:’, ‘值’
5、scan ‘表名’
......