安装 和 配置 HBase

Posted 一乐乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装 和 配置 HBase相关的知识,希望对你有一定的参考价值。

安装 和 配置 HBase

一、安装 HBase

1, 下载、(解压or安装)HBase 数据库:

  ①(在Linux 系统下的火狐浏览器打开)官网: Index of /dist/hbase (apache.org) 

  ② 解压安装包hbase-2.2.2-bin.tar.gz至路径 /usr/local,命令如下:

cd ~
sudo tar -zxf ~/下载/hbase-2.2.2-bin.tar.gz -C /usr/local

  ③ 将解压的文件名hbase-2.2.2改为hbase,以方便使用,命令如下:

cd /usr/local
sudo mv ./hbase-2.2.2 ./hbase

  ④ 下面把hbase目录权限赋予给hadoop用户:

cd /usr/local
sudo chown -R hadoop ./hbase

 

2, 配置环境变量(好处:启动hbase就无需到/usr/local/hbase目录下,大大的方便了hbase的使用)

■ 编辑~/.bashrc文件

vim ~/.bashrc

●编辑~/.bashrc文件时的注意事项:

① 如果没有引入过PATH请在~/.bashrc文件尾行添加如下内容:export PATH=$PATH:/usr/local/hbase/bin

② 如果已经引入过PATH请在export PATH这行追加/usr/local/hbase/bin,这里的是分隔符。如下图:

■ 执行source命令使上述配置在当前终端立即生效,命令如下:

source ~/.bashrc

 

3,添加HBase权限:

cd /usr/local
sudo chown -R hadoop ./hbase       #将hbase下的所有文件的所有者改为hadoop,hadoop是当前用户的用户名。

 

 4,查看HBase版本,确定hbase安装成功,命令如下:

/usr/local/hbase/bin/hbase version

(该过程遇到的bug请查看文章:HBase 安装之后版本的验证的bug:(错误的替换、找不到或无法加载主类、SLF4J)

 

 

 

二、配置 HBase(重点讨论单机模式和伪分布式模式)

✿   单机模式和伪分布式模式:都需要配置 jdksshhadoop

单机模式配置:

  • 配置/usr/local/hbase/conf/hbase-env.sh:配置JAVA环境变量,并添加配置HBASE_MANAGES_ZK为true。(进入 hbase-env.sh 文件后,添加如下:)
    vim /usr/local/hbase/conf/hbase-env.sh

    (进入 hbase-env.sh 文件后,添加如下:)

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301
    export HBASE_MANAGES_ZK=true 

    (添加完成后保存退出即可)

  • 配置/usr/local/hbase/conf/hbase-site.xml:设置属性hbase.rootdir,用于指定HBase数据的存储位置
    • 因为如果不设置的话,hbase.rootdir默认为/tmp/hbase-${user.name},这意味着每次重启系统都会丢失数据。咱设置为HBase安装目录下的hbase-tmp文件夹即(/usr/local/hbase/hbase-tmp)

  (打开并编辑hbase-site.xml)

vim /usr/local/hbase/conf/hbase-site.xml
<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>file:///usr/local/hbase/hbase-tmp</value>
        </property>
</configuration>

□ 测试一下:测试运行单机模式的HBase:

cd /usr/local/hbase
bin/start-hbase.sh
bin/hbase shell

 问题:bin/hbase shell用于打开shell命令行模式 报错:WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable。

 解决:警告级别的错误,不重要,解决:直接忽略

 

■ 伪分布式模式配置:

  • 配置/usr/local/hbase/conf/hbase-env.sh:配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK
    • (HBASE_CLASSPATH设置为本机HBase安装目录下的conf目录(即/usr/local/hbase/conf))
      (用命令vi打开hbase-env.xml)
    • vim /usr/local/hbase/conf/hbase-env.sh
    • (进入 hbase-env.sh 文件后,添加如下:)
    • export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
      export HBASE_CLASSPATH=/usr/local/hbase/conf 
      export HBASE_MANAGES_ZK=true
  • 配置/usr/local/hbase/conf/hbase-site.xml:hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式;
    • hbase.unsafe.stream.capability.enforce这个属性的设置,是为了避免出现启动错误。
    • (用命令vi打开hbase-site.xml)
    • vim /usr/local/hbase/conf/hbase-site.xml
    • (进入 hbase-site.xml 文件后,添加如下:)
    • <configuration>
              <property>
                      <name>hbase.rootdir</name>
                      <value>hdfs://localhost:9000/hbase</value>
              </property>
              <property>
                      <name>hbase.cluster.distributed</name>
                      <value>true</value>
              </property>
              <property>
              <name>hbase.unsafe.stream.capability.enforce</name>
              <value>false</value>
          </property>
      </configuration>

 

□ 测试一下:测试运行伪分布式模式的HBase: 

这里启动关闭Hadoop和HBase的顺序一定是:启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop

① 启动Hadoop:

ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh

启动HBase:

cd /usr/local/hbase
bin/start-hbase.sh

✿ 启动成功,输入命令jps

然后再输入命令:bin/hbase shell

看到如下图所示即成功

③ 关闭HBase

bin/stop-hbase.sh

 

 

 

 

 

 

 

 

   

 

 

 

HBase安装配置

HBase安装配置

 

HBase的安装有三种模式:单机模式、伪分布式模式、分布式模式。

其中,HBase在单机模式下不使用HSFS,直接将安装文件解压,改个hbase.xml文件就可以运行了;默认情况下HBAse数据是存储在根目录的tmp文件夹下,可以通过start-hbase.sh和stop-hbase.sh命令启动和关闭HBase;而伪分布式和分布式模式下的HBase需要HDFS系统;下面是按伪分布式进行安装配置HBase,配置好了三个集群:tjt01、tjt02、tjt03,hbase安装在tjt02机器上运行。

技术图片

1、伪分布式安装

HBase下载,官网地址:http://hbase.apache.org/

这里下载的是hbase-1.2.6版本:hbase-1.2.6-bin.tar.gz

1.1 使用HBase自带的zookeeper

HBase使用zookeeper进行管理,HBase本身自带了一个zookeeper,So伪分布式安装可以直接使用HBase自带的zookeeper,无需单独安装zookeeper。

1.2 解压HBase

将HBase hbase-1.2.6版本解压到/usr/local目录下:

[[email protected] opt]# tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local

将目录命名为hbase目录:

[[email protected] opt]# cd /usr/local/
[[email protected] local]# mv hbase-1.2.6 hbase

1.3 修改配置文件:

修改配置文件/usr/local/hbase/conf/hbase-en.sh

[[email protected] local]# vi /usr/local/hbase/conf/hbase-env.sh

修改内容如下:

export JAVA_HOME=/opt/jdk1.8.0_181
export HBASE_MANAGES_ZK=true

修改配置文件/usr/local/hbase/conf/hbase-site.xml

[[email protected] local]# vi /usr/local/hbase/conf/hbase-site.xml

增加如下配置:

<property>  
  <name>hbase.rootdir</name>  
  <value>hdfs://tjt01:9000/hbase</value>
</property>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>tjt02</value>
</property>
<property>
  <name>dfs.replication</name>   
  <value>1</value>
</property>

技术图片

 1.4 PATH路径到添加

/etc/profile文件增加:export PATH=$PATH:/usr/local/hbase/bin

[[email protected] local]# vi /etc/profile
[[email protected] local]# source /etc/profile
[[email protected] local]# 

1.5 启动HBase

启动HBase之前记得启动hdfs,start-hdfs.sh

[[email protected] local]# start-hbase.sh
tjt02: starting zookeeper, logging to /usr/local/hbase/bin/../logs/hbase-root-zookeeper-tjt02.out
starting master, logging to /usr/local/hbase/bin/../logs/hbase-root-master-tjt02.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
starting regionserver, logging to /usr/local/hbase/bin/../logs/hbase-root-1-regionserver-tjt02.out
[[email protected] local]# 

使用jps命令查看HBase是否启动成功:

HRegionServer、HQuorumPeer、HMaster

技术图片

1.6 验证HBase

关闭机器tjt02的防火墙:

[[email protected] local]# systemctl stop firewalld
[[email protected] local]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[[email protected] local]#

访问HBase首页: http://172.16.114.131:16010/

技术图片

使用HBase命令行再次验证:

[[email protected] local]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.6/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]
HBase Shell; enter help<RETURN> for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

hbase(main):001:0> 

技术图片

 

Now,HBase安装配置OK!

 

以上是关于安装 和 配置 HBase的主要内容,如果未能解决你的问题,请参考以下文章

Hbase的安装和配置

Hbase的安装和配置

HBase安装配置

hbase的安装配置

hbase伪分布安装配置

Hbase的安装和多节点配置