本文主要介绍HBASE1.2.0 的安装,安装过程发现有个别的地方于0.98 版本不太一样,请各位注意。
本文可以参考HBase0.98 的安装: http://blog.csdn.net/shenfuli/article/details/46415825
JDK版本和HBASE对应关系
HBase Version |
JDK 6 |
JDK 7 |
JDK 8 |
2 |
Not Supported |
Not Supported |
yes |
1.3 |
Not Supported |
yes |
yes |
1.2 |
Not Supported |
yes |
yes |
1.1 |
Not Supported |
yes |
Running with JDK 8 will work but is not well tested. |
1 |
Not Supported |
yes |
Running with JDK 8 will work but is not well tested. |
0.98 |
yes |
yes |
Running with JDK 8 works but is not well tested. Building with JDK 8 would require removal of the deprecated remove() method of thePoolMap class and is under consideration. See HBASE-7608 for more information about JDK 8 support. |
0.94 |
yes |
yes |
N/A |
Hadoop和HBASE对应关系
HBase-0.94.x |
HBase-0.98.x (Support for Hadoop 1.1+ is eprecated.) |
HBase-1.0.x (Hadoop 1.x is NOT supported) |
HBase-1.1.x |
HBase-1.2.x |
HBase-1.3.x |
Hadoop-1.0.x |
X |
X |
X |
X |
X |
X |
Hadoop-1.1.x |
S |
NT |
X |
X |
X |
X |
Hadoop-0.23.x |
S |
X |
X |
X |
X |
X |
Hadoop-2.0.x-alpha |
NT |
X |
X |
X |
X |
X |
Hadoop-2.1.0-beta |
NT |
X |
X |
X |
X |
X |
Hadoop-2.2.0 |
NT |
S |
NT |
NT |
X |
X |
Hadoop-2.3.x |
NT |
S |
NT |
NT |
X |
X |
Hadoop-2.4.x |
NT |
S |
S |
S |
S |
S |
Hadoop-2.5.x |
NT |
S |
S |
S |
S |
S |
Hadoop-2.6.0 |
X |
X |
X |
X |
X |
X |
Hadoop-2.6.1+ |
NT |
NT |
NT |
NT |
S |
S |
Hadoop-2.7.0 |
X |
X |
X |
X |
X |
X |
Hadoop-2.7.1+ |
NT |
NT |
NT |
NT |
S |
S |
Hadoop version support matrix
"S" = supported
"X" = not supported
"NT" = Not tested
我们这里选用的软件版本如下
Hadoop2.7.1
Hbase 1.2.0
jdk 1.7
1.上传HBase安装包
官网下载地址: http://archive.apache.org/dist/hbase/
2.解压
hbase-1.2.0-bin.tar.gz
配置环境变量
vi .basrrc
HBASE_HOME=/home/hadoop/siz/local/hbase-1.2.0
并添加到path变量中
3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了)
注意:由于hbase最终数据存放到hdfs,故需要要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
3.1在master 上修改hbase-env.sh
export JAVA_HOME=/home/hadoop/siz/local/jdk1.7.0_79
//告诉hbase使用外部的zk
export HBASE_MANAGES_ZK=false
# The maximum amount of heap to use. Default is left to JVM default.
export HBASE_HEAPSIZE=8G
3.2vim hbase-site.xml
hbase.rootdir
hdfs://10.8.1.8:9000/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
10.8.1.120:2181,10.8.1.130:2181,10.8.1.140:2181
hbase.master.port
16000
hbase.master.info.port
16010
说明:这里我们可以设置hbase.master.info.port和hbase.master.port 这里和0.98 版本不同,需要特别注意
关于hbase-site.xml 配置详见 :http://hbase.apache.org/book.html#quickstart_fully_distributed
3.3 指定机器为regionserver,不单独指定master。其中:在哪个机器上启动,哪台就是master,在regionservers文件说明要启动的HRegionServer
vim regionservers
10.8.1.8
10.8.1.9
10.8.1.10
3.4 在$HBASE_HOME/lib 下替换Hadoop版本和Zookeeper对应的版本
(1)rm -rf $HBASE_HOME/lib/hadoop*.jar
find /home/hadoop/siz/local/hadoop-2.7.1/share/ -name "hadoop*jar"| xargs -i cp {} $HBASE_HOME/lib
这里可以删除hadoop中test/sources 相关的包(可以选择)
(2)替换zookeeper的包,我们这里采用3.4.6
(3) hbase1.2.0 依赖 amazonaws包下的两个文件,故需要把下面两个文件上传至$HBASE_HOME/lib 目录下,否则会出现下面的错误
依赖的两个文件:
aws-java-sdk-core-1.10.77.jar
aws-java-sdk-s3-1.11.34.jar
不添加问题出现ClassNotFoundException:
Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentialsProvider
Caused by: java.lang.ClassNotFoundException: com.amazonaws.services.s3.AmazonS3
说明: 这里和0.98 版本不同,需要特别注意
3.4拷贝hbase到其他节点
4.将配置好的HBase拷贝到每一个节点并同步时间。
5.启动所有的hbase
分别启动zk
./zkServer.sh start
启动hdfs集群
start-dfs.sh
启动hbase,在主节点上运行:
start-hbase.sh
6.通过浏览器访问hbase1.2.0版本管理页面
10.8.1.8:16010
(于0.98 版本不同)
7.为保证集群的可靠性,要启动多个HMaster(可选)
hbase-daemon.sh start master