HBase安装
安装前准备:
1、Hadoop集群要启动正常
2、Zookeeper集群启动正常HBase 分布式存储的运行依托于Zookeeper和HDFS,所以必须有一个完整的Hadoop分布式运行环境 和 Zookeeper运行环境;
注意:ssh免密码登录;修改hostname和hosts,hbase通过hostname获取Ip地址。
搭建环境
- 虚拟机操作系统: Centos7 64位
- JDK:1.8.0_65 64位
- hadoop-2.6.0-cdh5.13.0
- zookeeper-3.4.5-cdh5.13.0
- hbase-1.2.0-cdh5.13.0
基础环境配置
- 主机名:master.com
- IP地址:192.168.1.111
- 角色:NameNode、ResourceManager、SecondaryNameNode、DataNode、NodeManager、HQuorumPeer、HMaster、HRegionServer
- 用户名:hadoop
- 密码:xxxxxxx
部署模式
同Hadoop部署模式有:
- 1、本地模式(单机模式)
使用Linux文件系统保存数据,且所有服务运行在一个JVM进程中,该模式一般不会使用。
- 2、伪分布模式(这里在伪分布式hadoop集群上安装hbase)
指在单台机器上运行多个服务,采用自身的zk服务管理hbase服务。
- 3、完全分布式模式
一般指集群中的服务器只运行hbase的一种服务,并且采用额外的zk集群管理hbase的元数据。
伪分布式安装
第一步:下载
下载:
http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.13.0.tar.gz
使用命令下载:
[hadoop@master ~]$ cd ~/bigdater/softs
[hadoop@master ~]$ wget http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.13.0.tar.gz
第二步:解压
解压到: /home/hadoop/bigdater
使用命令:
[hadoop@master bigdater]$ tar -zxvf softs/hbase-1.2.0-cdh5.13.0.tar.gz
创建文件夹:${hbase.home}/hbase
在hbase安装目录下创建一个文件夹hbase来存储临时文件和pid等。
[hadoop@master bigdater]$ cd /home/hadoop/bigdater/hbase-1.2.0-cdh5.13.0
[hadoop@master hbase-1.2.0-cdh5.13.0]$ mkdir hbase
第三步:修改配置信息 hbase-site.xml
首先: hbase.rootdir
修改hbase的根目录,这里我们使用hdfs文件系统,将其放到主目录之下,不用真的在hdfs创建这个文件,系统会帮助我们创建;
在这里要特别特别的注意,如果使用hdfs,意味着我们需要连接到这个文件系统,因此我们需要使用自己的IP+Port,也就是自己命名的主机(localhost)和Port(一定要修改成自己主机上的,具体从hadoop的etc/hadoop/core-site.xml文件中找到),这点非常非常重要,不然就会显示zookeeper不能正常启动,找不到节点等等信息;
其次:hbase.tmp.dir
修改hbase的临时文件目录,这样可以确保重新加电自检的时候能够正确载入,在断电的时候不会被清除,默认是:
/tmp/hbase-${user.name}
。然后:hbase.zookeeper.property.dataDir
修改zookeeper的数据存放路径,一般就在hbase下面创建一个目录存放了,当然我们也不用自己创建,系统会帮我们创建的。ooKeeper的zoo.conf中的配置。 快照的存储位置,默认:
${hbase.tmp.dir}/zookeeper
最后: hbase.cluster.distributed
HBase的运行模式。false是单机模式,true是分布式模式。若为false,HBase和Zookeeper会运行在同一个JVM里面。使得伪分布式生效。
[hadoop@master conf]$ cd /home/hadoop/bigdater/hbase-1.2.0-cdh5.13.0/conf/
[hadoop@master conf]$ vim hbase-site.xml
<!--修改hbase的根目录, 这里我们使用hdfs文件系统--> <property> <name>hbase.rootdir</name> <value>hdfs://master.com:9000/hbase</value> </property> <!--hbase的临时文件目录--> <property> <name>hbase.tmp.dir</name> <value>/home/hadoop/bigdater/hbase-1.2.0-cdh5.13.0/hbase/tmp</value> </property> <!--使得我们的伪分布式生效--> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!--完全分布式中使用--> <!-- <property> ZooKeeper的zoo.conf中的配置。 客户端连接的端口 <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master.com,slave01.com,slave02.com</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>zk中定义的数据存储路径</value> </property> -->
第四步:修改配置信息 hbase-env.sh
主要指定JAVA_HOME和hadoop相关信息。
[hadoop@master conf]$ $JAVA_HOME
[hadoop@master conf]$ vim hbase-env.sh
# The java implementation to use. Java 1.7+ required. 全局变量中配置可以不用配置 export JAVA_HOME=/usr/local/jdk/ # Extra Java CLASSPATH elements. Optional. 注意:最新的版本之中是不需要的 export HBASE_CLASSPATH=/home/hadoop/bigdater/hadoop-2.6.0-cdh5.13.0/etc/hadoop # The directory where pid files are stored. /tmp by default. export HBASE_PID_DIR=/home/hadoop/bigdater/hbase-1.2.0-cdh5.13.0/hbase/pids # Tell HBase whether it should manage it's own instance of Zookeeper or not.这里使用hbase自带的zookeeper export HBASE_MANAGES_ZK=true
第五步:指定regionserver节点的hostname
指定regionserver节点的hostname,修改文件regionservers:将localhost改为hostname:master.com。
[hadoop@master conf]$ vim regionservers
第六步:创建hdfs-site.xml软连接
创建到hdfs-site.xml的软连接或者配置连接hdfs的配置信息(完全分布式中一定需要)。
[hadoop@master conf]$ ln -s /home/hadoop/bigdater/hadoop-2.6.0-cdh5.13.0/etc/hadoop/hdfs-site.xml /home/hadoop/bigdater/hbase-1.2.0-cdh5.13.0/conf/hdfs-site.xml [hadoop@master conf]$ ls
第七步:配置hbase环境变量
[hadoop@master conf]$ vim ~/.bash_profile
[hadoop@master conf]$ source ~/.bash_profile
# HBase export HBASE_HOME=/home/hadoop/bigdater/hbase-1.2.0-cdh5.13.0 export PATH=$PATH:$HBASE_HOME/bin
测试HBase是否安装成功
[hadoop@master conf]$ hbase version
HBase启动
先启动HDFS:
[hadoop@master conf]$ start-dfs.sh
再启动 HBase 和 Zookeeper:
[hadoop@master conf]$ start-hbase.sh
停止集群命令:stop-hbase.sh
单独启动/停止进程命令:(单独的启动master或者regionserver)
hbase-daemon.sh (start|stop) (master|regionserver|zookeeper)
hbase-daemons.sh (start|stop) (regionserver|zookeeper)
使用jps查看是否有hbase的进程启动 :
HBase验证
Web界面查看hdfs根目录是否创建成功:http://master.com:50070/explorer.html#/
Name Value 说明 hbase.master.port
默认: 60000
HBase的Master的端口. hbase.master.info.port 默认: 60010
HBase Master web 界面端口.
设置为-1 意味着你不想让他运行
hbase.regionserver.port 默认: 60020
HBase RegionServer绑定的端口 hbase.regionserver.info.port 默认: 60030
HBase RegionServer web 界面绑定的端口
设置为 -1 意味这你不想与运行 RegionServer 界面.
Web界面查看是否启动成功:http://master.com:60010
Shell命令查客户端查看是否成功:
[hadoop@master ~]$ hbase shell
图中显示:SLF4J文件异常,出现了两个,删除hbase中的。
[hadoop@master lib]$ rm slf4j-log4j12-1.7.5.jar