赞
踩
(1)Ubuntu16.04 机子一台,最好可以联网
(2)已安装Hadoop,推荐安装2.7.7版本,因为它比较稳定,并且和Habse的兼容性最好。
√ = 完全可以兼容
?= 存在未知的兼容问题
× = 不兼容
HBase-1.2.x, HBase-1.3.x | HBase-1.4.x | HBase-2.0.x | HBase-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,不然你会遇见很多的问题。
本次安装的是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命令下载:
- root@master:/# mkdir HBase
- root@master:/# cd HBase/
- root@master:/HBase# wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.0.4/hbase-2.0.4-bin.tar.gz
解压:
- root@master:/HBase# ls
- hbase-2.0.4-bin.tar.gz
- root@master:/HBase# tar -xzvf hbase-2.0.4-bin.tar.gz
移动文件:
- root@master:/HBase# ls
- hbase-2.0.4 hbase-2.0.4-bin.tar.gz
- root@master:/HBase# mv hbase-2.0.4/* ./
删除安装包:
- root@master:/HBase# ls
- 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
- root@master:/HBase# rm -rf hbase-*
配置etc/profile,添加如下内容:
- export HBASE_HOME=/HBase
- export PATH=$PATH:$HBASE_HOME/bin
使配置文件生效
source /etc/profile
HBase的配置文件全在conf这个文件夹下,需要配置的有三个文件:
1.hbase-env.sh
2.hbase-site.xml
3.regionservers
配置hbase-env.sh
- root@master:/HBase# cd conf/
- root@master:/HBase/conf# ls
- hadoop-metrics2-hbase.properties hbase-env.cmd hbase-env.sh hbase-policy.xml hbase-site.xml log4j.properties regionservers
- root@master:/HBase/conf# vim hbase-env.sh
添加如下内容
- #true为单机版,false为集群版
- export HBASE_MANAGES_ZK=true
- #jdk目录
- export JAVA_HOME=/Java/jdk1.8
- #hadoop 目录
- export HADOOP_HOME=/Hadoop
- #hbase目录
- export HBASE_HOME=/HBase
配置hbase-site.xml,修改<configuration></configuration>为:
- <configuration>
- <!--Hadoop namenode地址-->
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://master:9000/hbase</value>
- </property>
- <!--是否分布式,设置为true会启动regionserver-->
- <property>
- <name>hbase.cluster.distributed</name>
- <value>true</value>
- </property>
- <!--HBase master地址-->
- <property>
- <name>hbase.master</name>
- <value>master:60010</value>
- </property>
- <!--Zookeeper地址-->
- <property>
- <name>hbase.zookeeper.property.dataDir</name>
- <value>/Zookeeper/temp</value>
- </property>
- <!--Zookeeper集群URL配置-->
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>master</value>
- </property>
- <!--Zookeeper 客户端端口-->
- <property>
- <name>hbase.zookeeper.property.clientPort</name>
- <value>2181</value>
- </property>
- </configuration>
配置regionservers
添加
master
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
- root@master:/# mkdir Zookeeper
- root@master:/# cd Zookeeper/
- root@master:/Zookeeper# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
解压
- root@master:/Zookeeper# ls
- zookeeper-3.4.13.tar.gz
- root@master:/Zookeeper# tar -xzvf zookeeper-3.4.13.tar.gz
删除安装包:
- root@master:/Zookeeper# ls
- zookeeper-3.4.13 zookeeper-3.4.13.tar.gz
- root@master:/Zookeeper# mv zookeeper-3.4.13/* ./
- root@master:/Zookeeper# rm -rf zookeeper-3.4.13
- root@master:/Zookeeper# rm -rf zookeeper-3.4.13.tar.gz
- root@master:/Zookeeper# ls
- bin contrib ivysettings.xml LICENSE.txt README_packaging.txt zookeeper-3.4.13.jar zookeeper-3.4.13.jar.sha1
- build.xml dist-maven ivy.xml NOTICE.txt recipes zookeeper-3.4.13.jar.asc
- conf docs lib README.md src zookeeper-3.4.13.jar.md5
配置 /etc/peofile,添加如下内容:
- export ZOOKEEPER_HOME=/Zookeeper
- export PATH=$PATH:$ZOOKEEPER_HOME/bin
使配置文件生效:
source /etc/profile
Zookeeper的配置文件只有一个,在conf文件夹下,名为:zoo_sample.cfg(修改后需复制一份为zoo.cfg才行)
修改zoo_sample.cfg为:
- # The number of milliseconds of each tick
- tickTime=2000
- # The number of ticks that the initial
- # synchronization phase can take
- initLimit=10
- # The number of ticks that can pass between
- # sending a request and getting an acknowledgement
- syncLimit=5
- # the directory where the snapshot is stored.
- # do not use /tmp for storage, /tmp here is just
- # example sakes.
- dataDir=/Zookeeper/data
- dataLogDir=/Zookeeper/logs
- # the port at which the clients will connect
- clientPort=2181
- # the maximum number of client connections.
- # increase this if you need to handle more clients
- #maxClientCnxns=60
- #
- # Be sure to read the maintenance section of the
- # administrator guide before turning on autopurge.
- #
- # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
- #
- # The number of snapshots to retain in dataDir
- #autopurge.snapRetainCount=3
- # Purge task interval in hours
- # Set to "0" to disable auto purge feature
- #autopurge.purgeInterval=1
- 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:
- root@master:/Zookeeper/conf# zkServer.sh start
- ZooKeeper JMX enabled by default
- Using config: /Zookeeper/bin/../conf/zoo.cfg
- Starting zookeeper ... STARTED
- root@master:/Zookeeper/conf# jps
- 22995 QuorumPeerMain
- 8309 NameNode
- 8421 DataNode
- 23014 Jps
- 8798 ResourceManager
- 8911 NodeManager
可以看到zookeeper的进程QuorumPeerMain启动成功了。
启动HBase的过程遇到了一些问题,下面一一指出:
- root@master:/HBase/logs# jps
- 22995 QuorumPeerMain
- 8309 NameNode
- 8421 DataNode
- 23405 Jps
- 8798 ResourceManager
- 8911 NodeManager
- root@master:/HBase/logs# start-hbase.sh
- SLF4J: Class path contains multiple SLF4J bindings.
- SLF4J: Found binding in [jar:file:/HBase/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
- SLF4J: Found binding in [jar:file:/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]
- running master, logging to /HBase/logs/hbase-root-master-master.out
- root@master:/HBase/logs# jps
- 23536 HMaster
- 22995 QuorumPeerMain
- 8309 NameNode
- 8421 DataNode
- 23611 Jps
- 8798 ResourceManager
- 8911 NodeManager
- root@master:/HBase/logs# jps
- 22995 QuorumPeerMain
- 8309 NameNode
- 8421 DataNode
- 23638 Jps
- 8798 ResourceManager
- 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目录下,提示:
- 2019-03-14 18:15:05,156 ERROR [main] master.HMasterCommandLine: Master exiting
- 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.
- at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:217)
- at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
- at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
- at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149)
- at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:3073)
- 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请求端口设置改为了:
- <property>
- <name>hbase.zookeeper.property.clientPort</name>
- <value>2182</value>
- </property>
启动HBase
- root@master:/HBase/conf# start-hbase.sh
- running master, logging to /HBase/logs/hbase-root-master-master.out
- root@master:/HBase/conf# jps
- 32995 Jps
- 32053 HQuorumPeer
- 29574 DataNode
- 29463 NameNode
- 29962 ResourceManager
- 32154 HMaster
- 30076 NodeManager
- 32268 HRegionServer
到此HBase就安装成功啦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。