当前位置:   article > 正文

Ubuntu16.04 安装配置HBase详细步骤(单机版)_[dashuju@hadoop102 hbase-2.4.11]$ start-hbase.sh r

[dashuju@hadoop102 hbase-2.4.11]$ start-hbase.sh running master, logging to

前题条件

(1)Ubuntu16.04 机子一台,最好可以联网

(2)已安装Hadoop,推荐安装2.7.7版本,因为它比较稳定,并且和Habse的兼容性最好。

Hadoop和HBase版本对照表

  •  √ = 完全可以兼容

  •  ?= 存在未知的兼容问题

  •   × = 不兼容

 HBase-1.2.x, HBase-1.3.xHBase-1.4.xHBase-2.0.xHBase-2.1.x

Hadoop-2.4.x

×××

Hadoop-2.5.x

×××

Hadoop-2.6.0

××××

Hadoop-2.6.1+

××
Hadoop的2.7.0××××

Hadoop-2.7.1+

Hadoop-2.8.[0-1]

××××

Hadoop-2.8.2

Hadoop-2.8.3+

Hadoop-2.9.0

××××

Hadoop-2.9.1+

Hadoop-3.0.[0-2]

××××

Hadoop-3.0.3+

××

Hadoop-3.1.0

××××

Hadoop-3.1.1+

××

相信我,一定要严格按照版本对照表安装HBase,不然你会遇见很多的问题。 

下载HBase

本次安装的是HBase2.0.4版本,Hadoop为2.7.7版本。

清华镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.0.4/hbase-2.0.4-bin.tar.gz

使用wget命令下载: 

  1. root@master:/# mkdir HBase
  2. root@master:/# cd HBase/
  3. root@master:/HBase# wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.0.4/hbase-2.0.4-bin.tar.gz

解压:

  1. root@master:/HBase# ls
  2. hbase-2.0.4-bin.tar.gz
  3. root@master:/HBase# tar -xzvf hbase-2.0.4-bin.tar.gz

移动文件:

  1. root@master:/HBase# ls
  2. hbase-2.0.4 hbase-2.0.4-bin.tar.gz
  3. root@master:/HBase# mv hbase-2.0.4/* ./

删除安装包:

  1. root@master:/HBase# ls
  2. bin CHANGES.md conf docs hbase-2.0.4 hbase-2.0.4-bin.tar.gz hbase-webapps LEGAL lib LICENSE.txt NOTICE.txt README.txt RELEASENOTES.md
  3. root@master:/HBase# rm -rf hbase-*

配置HBase

配置etc/profile,添加如下内容:

  1. export HBASE_HOME=/HBase
  2. export PATH=$PATH:$HBASE_HOME/bin

使配置文件生效

source /etc/profile

HBase的配置文件全在conf这个文件夹下,需要配置的有三个文件:

1.hbase-env.sh

2.hbase-site.xml

3.regionservers

配置hbase-env.sh

  1. root@master:/HBase# cd conf/
  2. root@master:/HBase/conf# ls
  3. hadoop-metrics2-hbase.properties hbase-env.cmd hbase-env.sh hbase-policy.xml hbase-site.xml log4j.properties regionservers
  4. root@master:/HBase/conf# vim hbase-env.sh

添加如下内容

  1. #true为单机版,false为集群版
  2. export HBASE_MANAGES_ZK=true
  3. #jdk目录
  4. export JAVA_HOME=/Java/jdk1.8
  5. #hadoop 目录
  6. export HADOOP_HOME=/Hadoop
  7. #hbase目录
  8. export HBASE_HOME=/HBase

配置hbase-site.xml,修改<configuration></configuration>为:

  1. <configuration>
  2. <!--Hadoop namenode地址-->
  3. <property>
  4. <name>hbase.rootdir</name>
  5. <value>hdfs://master:9000/hbase</value>
  6. </property>
  7. <!--是否分布式,设置为true会启动regionserver-->
  8. <property>
  9. <name>hbase.cluster.distributed</name>
  10. <value>true</value>
  11. </property>
  12. <!--HBase master地址-->
  13. <property>
  14. <name>hbase.master</name>
  15. <value>master:60010</value>
  16. </property>
  17. <!--Zookeeper地址-->
  18. <property>
  19. <name>hbase.zookeeper.property.dataDir</name>
  20. <value>/Zookeeper/temp</value>
  21. </property>
  22. <!--Zookeeper集群URL配置-->
  23. <property>
  24. <name>hbase.zookeeper.quorum</name>
  25. <value>master</value>
  26. </property>
  27. <!--Zookeeper 客户端端口-->
  28. <property>
  29. <name>hbase.zookeeper.property.clientPort</name>
  30. <value>2181</value>
  31. </property>
  32. </configuration>

配置regionservers

添加

master

安装Zookeeper

zookeeper的作用主要是当集群中的master挂掉之后,它会重新选一位master,本次安装的是单机版的HBase,因此安装zookeeper可以省略。

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

使用wget下载zookeeper

  1. root@master:/# mkdir Zookeeper
  2. root@master:/# cd Zookeeper/
  3. root@master:/Zookeeper# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

解压

  1. root@master:/Zookeeper# ls
  2. zookeeper-3.4.13.tar.gz
  3. root@master:/Zookeeper# tar -xzvf zookeeper-3.4.13.tar.gz

删除安装包:

  1. root@master:/Zookeeper# ls
  2. zookeeper-3.4.13 zookeeper-3.4.13.tar.gz
  3. root@master:/Zookeeper# mv zookeeper-3.4.13/* ./
  4. root@master:/Zookeeper# rm -rf zookeeper-3.4.13
  5. root@master:/Zookeeper# rm -rf zookeeper-3.4.13.tar.gz
  6. root@master:/Zookeeper# ls
  7. bin contrib ivysettings.xml LICENSE.txt README_packaging.txt zookeeper-3.4.13.jar zookeeper-3.4.13.jar.sha1
  8. build.xml dist-maven ivy.xml NOTICE.txt recipes zookeeper-3.4.13.jar.asc
  9. conf docs lib README.md src zookeeper-3.4.13.jar.md5

配置Zookeeper

配置 /etc/peofile,添加如下内容:

  1. export ZOOKEEPER_HOME=/Zookeeper
  2. export PATH=$PATH:$ZOOKEEPER_HOME/bin

使配置文件生效:

source /etc/profile

Zookeeper的配置文件只有一个,在conf文件夹下,名为:zoo_sample.cfg(修改后需复制一份为zoo.cfg才行)

修改zoo_sample.cfg为:

  1. # The number of milliseconds of each tick
  2. tickTime=2000
  3. # The number of ticks that the initial
  4. # synchronization phase can take
  5. initLimit=10
  6. # The number of ticks that can pass between
  7. # sending a request and getting an acknowledgement
  8. syncLimit=5
  9. # the directory where the snapshot is stored.
  10. # do not use /tmp for storage, /tmp here is just
  11. # example sakes.
  12. dataDir=/Zookeeper/data
  13. dataLogDir=/Zookeeper/logs
  14. # the port at which the clients will connect
  15. clientPort=2181
  16. # the maximum number of client connections.
  17. # increase this if you need to handle more clients
  18. #maxClientCnxns=60
  19. #
  20. # Be sure to read the maintenance section of the
  21. # administrator guide before turning on autopurge.
  22. #
  23. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  24. #
  25. # The number of snapshots to retain in dataDir
  26. #autopurge.snapRetainCount=3
  27. # Purge task interval in hours
  28. # Set to "0" to disable auto purge feature
  29. #autopurge.purgeInterval=1
  30. server.0=master:2888:3888

复制一份:

root@master:/Zookeeper/conf# cp zoo_sample.cfg zoo.cfg

最后,还需在zookeeper的dataDir内新建一个myid文件,内容为zoo.cfg中server.后面的数字,这里为0

root@master:/Zookeeper/data# echo "0">>myid

启动zookeeper:

  1. root@master:/Zookeeper/conf# zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config: /Zookeeper/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
  5. root@master:/Zookeeper/conf# jps
  6. 22995 QuorumPeerMain
  7. 8309 NameNode
  8. 8421 DataNode
  9. 23014 Jps
  10. 8798 ResourceManager
  11. 8911 NodeManager

可以看到zookeeper的进程QuorumPeerMain启动成功了。

启动HBase

启动HBase的过程遇到了一些问题,下面一一指出:

  1. root@master:/HBase/logs# jps
  2. 22995 QuorumPeerMain
  3. 8309 NameNode
  4. 8421 DataNode
  5. 23405 Jps
  6. 8798 ResourceManager
  7. 8911 NodeManager
  8. root@master:/HBase/logs# start-hbase.sh
  9. SLF4J: Class path contains multiple SLF4J bindings.
  10. SLF4J: Found binding in [jar:file:/HBase/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  11. SLF4J: Found binding in [jar:file:/Hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  12. SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
  13. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
  14. running master, logging to /HBase/logs/hbase-root-master-master.out
  15. root@master:/HBase/logs# jps
  16. 23536 HMaster
  17. 22995 QuorumPeerMain
  18. 8309 NameNode
  19. 8421 DataNode
  20. 23611 Jps
  21. 8798 ResourceManager
  22. 8911 NodeManager
  23. root@master:/HBase/logs# jps
  24. 22995 QuorumPeerMain
  25. 8309 NameNode
  26. 8421 DataNode
  27. 23638 Jps
  28. 8798 ResourceManager
  29. 8911 NodeManager

问题1

Class path contains multiple SLF4J bindings警告。

解决办法

上面提示HBase的slf4j-log4j12-1.7.25.jar包和Hadoop的slf4j-log4j12-1.7.10.jar包起冲突了,因此只需删除其中的一个即可,为了防止误删,这里只是将slf4j-log4j12-1.7.25.jar更改了一下名称

mv /HBase/lib/slf4j-log4j12-1.7.25.jar /HBase/lib/slf4j-log4j12-1.7.25.jar_cp

之后再启动HBase就不会报警告啦。

问题2

HBase启动后HMaster进程过一会儿就消失了。

解决办法

查看HBase的日志文件,在/HBase/logs目录下,提示:

  1. 2019-03-14 18:15:05,156 ERROR [main] master.HMasterCommandLine: Master exiting
  2. java.io.IOException: Could not start ZK at requested port of 2181. ZK was started at port: 2182. Aborting as clients (e.g. shell) will not be able to find this ZK quorum.
  3. at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:217)
  4. at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
  5. at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
  6. at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149)
  7. at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:3073)
  8. 2019-03-14 18:15:05,171 INFO [Thread-2] server.NIOServerCnxn: Closed socket connection for client /127.0.0.1:38288 (no session established for client)

提示zookeeper启动的端口为2182,而不是2181,因此这里将/HBase/conf/hbase-site.xml内的zookeeper请求端口设置改为了:

  1. <property>
  2. <name>hbase.zookeeper.property.clientPort</name>
  3. <value>2182</value>
  4. </property>

启动HBase

  1. root@master:/HBase/conf# start-hbase.sh
  2. running master, logging to /HBase/logs/hbase-root-master-master.out
  3. root@master:/HBase/conf# jps
  4. 32995 Jps
  5. 32053 HQuorumPeer
  6. 29574 DataNode
  7. 29463 NameNode
  8. 29962 ResourceManager
  9. 32154 HMaster
  10. 30076 NodeManager
  11. 32268 HRegionServer

到此HBase就安装成功啦。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/715069
推荐阅读
相关标签
  

闽ICP备14008679号