HBase安装和基本使用
安装前的规划
集群中机器名:master、slave1、slave2
单机方式安装
注意:单机方式安装时若安装所在的机器上有已经启动的zookeeper,要将其关闭,因为HBase内部会启动一个单机版的zookeeper,一般两者都使用2181端口,可能会造成端口冲突。
配置JAVA_HOME
进入到Hbase的安装路径下的conf目录,在hbase-env.sh文件中配置JAVA_HOME信息(即打开JAVA_HOME那一行的注释,并且根据本机真实的JAVA_HOME来进行配置,可使用which java命令快速查询java所安装的位置)
export JAVA_HOME=/usr/jdk1.8.0_6
配置被hbase-site.xml文件
进入到Hbase的安装路径下的conf目录,在hbase-site.xml文件中配置相关信息
添加如下配置项:
hbase.rootdir
file:///home/bigdata/hbase/data
hbase.zookeeper.property.dataDir
/home/bigdata/hbase/zookeeper
上述两个配置项中,hbase.rootdir指的是HBase用来存放数据的目录,这个目录不需要自己创建,HBase会帮助我们进行配置。如果你自己创建了这个目录,HBase会尝试将其做一个迁移,这可能不是你想要的结果。hbase.zookeeper.property.dataDir是用来存放HBase自己管理的zookeeper的属性数据信息的目录
至此,Hbase的单机安装配置就完毕了。
/usr/soft/hbase-1.1.2/bin hbase的安装 目录下 bin —>hbase、hbase-daemon.sh、hbase-daemons.sh、start-hbase.sh、stop-hbase.sh是常用命令
/usr/soft/hbase-1.1.2/conf conf—>hbase-env.sh、hbase-site.xml、regionservers是常用的配置文件
全分布式安装配置
首先保证已有一个独立的zookeeper集群,并设置hbase不自己管理zookeeper(我们现在使用的版本中默认就是如此,可以不进行配置)
在$HBASE_HOME/conf/hbase-env.sh中配置如下信息(若已有HBASE_MANAGES_ZK,将其改为false即可):
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/jdk1.8.0_60
在$HBASE_HOME/conf/regionservers中配置需要作为Hbase regin的机器名称,跟hadoop配置文件中的slaves文件类似,本例中配置信息如下
Hadoop01
Hadoop02
Hadoop03
在$HBASE_HOME/conf/hbase-site.xml文件中配置如下信息:
hbase.cluster.distributed true 这个目录不需要自己创建,HBase会帮助我们进行配置。如果你自己创建了这个目录,HBase会尝试将其做一个迁移,这可能不是你想要的结果。<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop01:9000/hbase</value>
<!--hbase需要连接的zookeeper集群-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!--hbase中保存zookeeper数据的地址-->
<property>
<name>hbase.zookeeper.property.data.dir</name>
<value>/home/bigdata/hbase/zookeeper</value>
给hbase添加HADOOP_HOME信息
由于HDFS做了高可用,所以需要告知HBASE HADOOP_HOME
就算在/etc/profile中已经配置了HADOOP_HOME,也还需要必须在hbase-env.sh 文件中添加HADOOP_HOME信息:
export HADOOP_HOME=/usr/soft/hadoop-2.7.1
整体拷贝Hbase配置文件到regionservers中配置的其他机器上
做好上述配置后,跟hadoop类似,需要将其拷贝到在reginservers中配置的其他机器上。
启动HBase服务
以下命令的执行前提是已经在系统中配置好了HBASE_HOME.
在master机器上执行如下命令(因为其上配置了从master到各个slave的ssh免密码登录):
#sh start-hbase.sh
进入HBase shell
#hbase shell
退出HBase shell
hbase(main):001:0> quit
关闭HBase服务
#sh stop-hbase.sh