Hbase安装的详细流程

  1. 安装配置HBase,请解压好hbase安装包到指定目录下
  2. 配置环境变量
    编辑 vim /etc/profile 加入
export  HBASE_HOME=/home/hadoop/hbase
export  PATH=$PATH:$HBASE_HOME/bin
export  HBASE_CONF_DIR=$HBASE_HOME/conf
export  HBASE_CLASS_PATH=$HBASE_CONF_DIR

刷新环境变量
完成后可以用hbase version来验证是否配置正确
2) 配置/conf/hbase-env.sh 添加JAVA变量和HBASE_CLASSPATH变量,这两个变量其实在文件中都被注释掉了,只需找到并删除注释符即可,并将路径设置为本机Hadoop安装目录下的conf目录(即{HADOOP_HOME}/conf)。路径请按照实际情况填写。修改后,hbase-env.sh的配置如下:

export JAVA_HOME=/home/hadoop/java
export HBASE_CLASSPATH=/home/hadoop/hbase/conf 
export HBASE_MANAGES_ZK=true

注意:这里HBASE_MANAGES_ZK 配置为false,那么hbase在启动的时候就不会启动自带的zookeeper,不会应用自带zookeeper进行协调管理,配置为true则会应用自带zookeeper。
3) 配置/conf/hbase-site.xml 修改hbase.rootdir,将其指向master(与hdfs的端口保持一致),并指定HBase在HDFS上的存储路径。将属性hbase.cluter.distributed设置为true。假设当前Hadoop集群运行在伪分布式模式下,且NameNode运行在9000端口;

<configuration>
   <property>
        <name>hbase.rootdir</name>
        <value>hdfs://操得:9000/hbase</value>
<description>HDFS中存储hbase数据的目录,注意主机名和端口号要与hadoop的core-site.xml中fs.default.name的对应</description>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
<description>hbase采用集群分布式将 hbase.cluster.distributed 属性值设置为 true, 指定 HBase 运行于分布式模式, 即一个 JVM 运行一个守护进程.</description>
</property>
</configuration>
  1. 启动HBase
    完成以上操作后启动HBase,启动顺序:先启动Hadoop–>再启动HBase,关闭顺序:先关闭HBase–>再关闭Hadoop。
    第一步:启动hadoop集群
    #启动hadoop
start-all.sh

#查看进程
jps
7542 ResourceManager
6823 NameNode
7047 DataNode
7337 SecondaryNameNode
7770 NodeManager
12973 Jps
特别注意:可先通过jps命令查看Hadoop集群是否启动,如果Hadoop集群已经启动,则不需要执行Hadoop集群启动操作。
第二步:启动HBase 该启动命令在bin文件夹下
#启动Hbase

start-hbase.sh

#查看进程
jps
一般会出现:
7542 ResourceManager
6823 NameNode
7047 DataNode
7337 SecondaryNameNode
7770 NodeManager
12973 Jps
18818 HQuorumPeer
18889 HMaster
则证明服务启动成功,然后我们验证一下,是否可以正常运行:
第三步:启动shell
执行hbase shell打开命令操作界面
输入list,查看当前数据库列表
执行create 'tb','mycf'命令来创建一个数据库
2. 可能出现的问题及应对策略

  1. 如果在启动hbase后报错:
    stopping hbasecat: /tmp/hbase-root-master.pid: No such file or directory
    造成hadoop出现上述这个错误的原因很多,如果系统运行一切正常并且运行了很长时间,现在出现了上述错误需要停止集群,一个很可能的原因是hadoop的pid文件丢失,hadoop的pid文件默认保存在/tmp目录下,/tmp目录下的文件很容易丢失,所以造成停止集群的时候出现上述错误。解决方式是在/etc/hadoop/hadoop-env.conf文件中找到pid的配置项,修改其配置路径即可
    即在hadoop的hadoop-env.sh文件中,添加两条变量(第一句在文件中都有,只需要去掉注释即可,第二句需要手动书写)
export HADOOP_PID_DIR=/var/hadoop/pids
export HADOOP_SECURE_DN_PID_DIR=/var/hadoop/pids

另外不要忘了添加上述路径的文件夹
2) 如果在启动shell时出现以下内容:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
证明在home/hadoop/hbase/lib/slf4j-log4j12-1.7.5.jar!/
org/slf4j/impl/中的相关文件兼容性出现了问题,找到该文件,给其修改一个名称即可(我的做法是在后面加上.bak即可)
3) 注意看报错提示内容,可能是hbase-env.sh或者hbase-site.xml文件出了问题