Hbase zookeeper 单机安装

阅读更多

环境前提

1、JDK 1.8

2、Centos7

3、Hadoop 3.2安装

 

Hbase使用外部(非自带)zookeeper搭建伪分布式环境

1)下载 hbase-2.1.4-bin.tar.gz

2)解压和取别名

tar -zxvf ~/Downloads/hbase-2.1.4-bin.tar.gz -C ~/applications/

3)配置

环境变量


export HBASE_HOME=/opt/applications/hbaseexport PATH=$HBASE_HOME/bin:$PATH

3.1 hbase-env.sh

修改conf/hbase-env.sh中的HBASE_MANAGES_ZK为false

 

# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
# export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=false

export HBASE_LOG_DIR=/wls/log/hbase/logs

export JAVA_HOME=/usr/local/java/jdk/

 

- -如果你是使用hbase自带的zk就是true,如果使用自己的zk就是false
创建sudo mkdir -p /wls/log/hbase/logs

3.2 配置 hbase-site.xml



hbase.rootdir  
hdfs://master/hbase 


hbase.cluster.distributed 
true

 
hbase.zookeeper.property.clientPort 
2181 
 
 
hbase.zookeeper.quorum 
master 
 


hbase.zookeeper.property.dataDir
/Data/zk/data



hbase.cluster.distributed
true



hbase.master.info.bindAddress
master
Enter the HBase Master server hostname



        zookeeper.session.timeout
        1200000
    

   

        hbase.zookeeper.property.tickTime
        6000
    
 

        dfs.support.append
        true
    


hbase.regionserver.handler.count
60


 <property>
    <name>hbase.unsafe.stream.capability.enforcename>
    <value>falsevalue>
    <description>
      Controls whether HBase will check for stream capabilities (hflush/hsync).

      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.

      WARNING: Setting this to false blinds you to potential data loss and
      inconsistent system state in the event of process and/or node failures. If
      HBase is complaining of an inability to use hsync or hflush it's most
      likely not a false positive.
    description>
  property>

启动 start-hbase.sh,(启动的hbase的时候要保证hadoop集群已经启动)

报错


2019-04-04 15:07:06,126 ERROR [main] regionserver.HRegionServer: Failed construction RegionServerjava.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder

解决方案,网上下载htrace-core-3.1.0-incubating.jar/wls/log/hadoop-yarn/apps

cp htrace-core-3.1.0-incubating.jar $HBASE_HOME/lib/















[xx@master hbase]$ start-hbase.shrunning master, logging to /wls/log/hbase/logs/hbase-xx-master-master.out: running regionserver, logging to /wls/log/hbase/logs/hbase-xx-regionserver-master.out[xx@master hbase]$ jps16704 JobHistoryServer17170 HRegionServer11748 QuorumPeerMain15943 ResourceManager16104 NodeManager15548 DataNode15389 NameNode17517 Jps16991 HMaster

启动的HMaster十几秒后消失

查看hbase-xx-master-master.log

报错信息

hbase.rootdir: hdfs://master:9000/hbase

java.net.ConnectException: Call From localhost/127.0.0.1 to master:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

原因分析:

base.rootdir

  • 这个目录是 RegionServer 的共享目录,用来持久化 HBase。URL 需要是 “完全正确” 的,还要包含文件系统的 scheme。 例如 “/hbase” 表示 HBase 在 HDFS 中占用的实际存储位置,HDFS 的 NameNode 运行在主机名为 master 的 8020 端口,则 hbase.rootdir 的设置应为 “hdfs://master5:8020/hbase”。在默认情况下 HBase 是写在 /tmp 中的。
  • 不修改这个配置的话,数据会在重启的时候丢失。特别注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致
  • 前面hbase-site.xml配置为hdfs://master:9000/hbase

解决方案:

  • hbase-site.xml配置为hdfs://master/hbase,和Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口一致

 

新的异常

java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.

hbase-site.xml增加配置 


hbase.unsafe.stream.capability.enforce
false

<description>

Controls whether HBase will check for stream capabilities (hflush/hsync). Disable this if you intend to run on LocalFileSystem, denoted by a rootdir with the 'file://' scheme, but be mindful of the NOTE below. WARNING: Setting this to false blinds you to potential data loss and inconsistent system state in the event of process and/or node failures. If HBase is complaining of an inability to use hsync or hflush it's most likely not a false positive.

description>

验证:

1)hdfs dfs -ls / 可以查看hbase是否在HDFS文件系统创建成功

[xx@master logs]$ hdfs dfs -ls /
Found 3 items
drwxr-xr-x - xx supergroup 0 2019-04-04 16:52 /hbase
drwxr-xr-x - xx supergroup 0 2019-04-04 16:10 /tmp

drwx------ - xx supergroup 0 2019-04-04 16:46 /user

其中hdfs会为每个用户都建一个回收站,用户删除文件时,文件并不是彻底地消失了,而是mv到了/user/用户名/.Trash/这个文件下,在一段时间内,用户可以恢复这些已经删除的文件。如果用户没有主动删除,那么系统会根据用户设置的时间把文件删除掉(某些默认设置是360分钟,用户也可以自己设置这个删除的时间设置),用户也可以手动清空回收站,这样删除的文件就再也找不回来了

2)通过webui验证: http://master:16010

3)使用hbase shell

你可能感兴趣的:(Hbase zookeeper 单机安装)