高可用性、高性能、列存储、可伸缩、实时读写。
完全分布式安装HBase是在完全分布式安装好Hadoop的基础上进行的。
HBase的版本和Hadoop的版本需要匹配得上,尽量不要选择最新的版本,应该选稳定版本的。
我这里用的是Hadoop-1.2.1和HBase-0.94.11。
以下操作在hadoop的namenode主节点上进行,在主节点上配置好之后,再复制到各个从节点。
1. 配置hbase-env.sh文件
该文件在hbase-0.90.5/conf/目录下。
1)配置JDK安装目录
# The java implementation to use. Java 1.6 required. export JAVA_HOME=/usr/java
2)配置Hadoop安装目录
# Extra Java CLASSPATH elements. Optional. export HBASE_CLASSPATH=/home/hadoop/hadoop-1.2.1/conf
3)配置由HBase负责启动和关闭zookeeper
# Tell HBase whether it should manage it's own instance of Zookeeper or not. export HBASE_MANAGES_ZK=true
2. 该文件在hbase-0.94.11/conf/目录下,文件内容配置如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/**
* Copyright 2010 The Apache Software Foundation
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<configuration>
<property>
<!--指定HBase数据的存放位置-->
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<!--启动分布模式-->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<!--hbase临时目录,不配置可能出错-->
<name>hbase.tmp.dir</name>
<value>/home/hadoop/hbase-0.94.11/tmp</value>
</property>
<property>
<!--指定HBase主节点的主机名和端口-->
<name>hbase.master</name>
<value>master:60000</value>
</property>
<property>
<!--设置所有zookeeper节点的主机名或IP-->
<name>hbase.zookeeper.quorum</name>
<value>master,node1,node2</value>
</property>
<property>
<!--指定zookeeper目录-->
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/coder/hbase-0.94.11/zookeeper</value>
</property>
</configuration>
3. 配置regionservers文件
该文件在hadoop-0.94.11/conf/目录下,我这里配置了两个从节点h2和h3作为Region服务器,该文件内容如下:
node1
node2
4. 替换HBase的hadoop核心jar包
进入到hbase-0.94.11/lib/目录下。
1)将原来的hadoop-core-0.20-append-r1056497.jar做个备份,或者直接删掉
[coder@master lib]$ mv hadoop-core-0.20-append-r1056497.jar hadoop-core-0.20-append-r1056497.jar.bak
2)将Hadoop安装目录中的hadoop-1.2.1-core.jar复制到hbase-0.94.11/lib/目录中
[coder@master lib]$ cp /home/hadoop/hadoop-1.2.1/hadoop-1.2.1-core.jar /home/hadoop/hbase-0.94.11/lib/
5. 到这里,最简单HBase配置已经ok了。现在需要把配置好的Hbase复制到其他节点,执行如下命令:
[hadoop@master ~]$ scp -r hbase-0.94.11 node1:/home/hadoop/ [hadoop@master ~]$ scp -r hbase-0.94.11 node2:/home/hadoop/ 6、先启动Hadoop,再启动HBase。
1)启动hadoop,进入hadoop安装目录,执行:
[coder@master hadoop-1.2.1]$ bin/start-all.sh
2)启动HBase,进入HBase安装目录,执行:
[coder@master hbase-0.94.11]$ bin/start-hbase.sh