HBase Install
| Name | Version | download |
|---|---|---|
| HBase | 1.2.1 | https://archive.apache.org/dist/hbase/1.2.1/hbase-1.2.1-bin.tar.gz |
其它版本可到https://archive.apache.org/dist/hbase/下载。
解压hbase安装包
tar -zxvf ~/hbase-1.2.1-bin.tar.gz -C /opt/tar -zxvf ~/hbase-1.2.1-bin.tar.gz -C /opt/进行软链接:
ln -s /opt/hbase-1.2.1 /opt/hbaseln -s /opt/hbase-1.2.1 /opt/hbase配置环境变量
vim /etc/profilevim /etc/profile# set hbase env
export HBASE_HOME=/opt/hbase
export PATH=$HBASE_HOME/bin:$PATH# set hbase env
export HBASE_HOME=/opt/hbase
export PATH=$HBASE_HOME/bin:$PATH使其生效:
source /etc/profilesource /etc/profile文件配置
hbase-env.sh
vim $HBASE_HOME/conf/hbase-env.shvim $HBASE_HOME/conf/hbase-env.sh找到JAVA_HOME,注释掉,改为如下:
# export JAVA_HOME=/usr/java/jdk1.6.0/
export JAVA_HOME=/opt/jdk# export JAVA_HOME=/usr/java/jdk1.6.0/
export JAVA_HOME=/opt/jdk找到HBASE_MANAGES_ZK,注释掉,改为如下:
值为true使用HBase自带的ZooKeeper,值为false使用在Hadoop上装的ZooKeeper:
# export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=false# export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=false找到HBASE_CLASSPATH,将hbase类路径改为你hadoop的配置文件目录:
# export HBASE_CLASSPATH=
export HBASE_CLASSPATH=/opt/hadoop/etc/hadoop# export HBASE_CLASSPATH=
export HBASE_CLASSPATH=/opt/hadoop/etc/hadoop修改hbase-site.xml
vim $HBASE_HOME/conf/hbase-site.xmlvim $HBASE_HOME/conf/hbase-site.xml<!-- hbase.rootdir # 使用8020端口 -->
<!-- 注意:这里的端口需要和hadoop中的core-site.xml中的fs.defaultFS一致 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:8020/hbase</value>
<description>The directory shared by region servers.</description>
</property>
<!-- hbase.master.info.port # 使用master节点60010端口 -->
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<!-- hbase.zookeeper.property.clientPort # 使用master节点2181端口 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect.
</description>
</property>
<!-- zookeeper.session.timeout zookeeper超时时间 -->
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
<!-- hbase.zookeeper.quorum # ZooKeeper管理节点 -->
<!-- 这里根据你zookeeper管理节点修改 -->
<property>
<name>hbase.zookeeper.quorum</name>
<!-- <value>master,slave1,slave2</value> -->
<value>master</value>
</property>
<!-- hbase.tmp.dir # HBase临时文件路径 -->
<property>
<name>hbase.tmp.dir</name>
<value>/opt/hbase/tmp</value>
</property>
<!-- hbase.cluster.distributed # 使用分布式HBase -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property><!-- hbase.rootdir # 使用8020端口 -->
<!-- 注意:这里的端口需要和hadoop中的core-site.xml中的fs.defaultFS一致 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:8020/hbase</value>
<description>The directory shared by region servers.</description>
</property>
<!-- hbase.master.info.port # 使用master节点60010端口 -->
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<!-- hbase.zookeeper.property.clientPort # 使用master节点2181端口 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect.
</description>
</property>
<!-- zookeeper.session.timeout zookeeper超时时间 -->
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
<!-- hbase.zookeeper.quorum # ZooKeeper管理节点 -->
<!-- 这里根据你zookeeper管理节点修改 -->
<property>
<name>hbase.zookeeper.quorum</name>
<!-- <value>master,slave1,slave2</value> -->
<value>master</value>
</property>
<!-- hbase.tmp.dir # HBase临时文件路径 -->
<property>
<name>hbase.tmp.dir</name>
<value>/opt/hbase/tmp</value>
</property>
<!-- hbase.cluster.distributed # 使用分布式HBase -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>hbase.rootdir:该项配置了数据写入的目录,默认hbase.rootdir是指向/tmp/hbase${user.name},也就说你会在重启后丢失数据(重启的时候操作系统会清理/tmp目录)。
hbase.zookeeper.property.clientPort:指定zk的连接端口 zookeeper.session.timeout:RegionServer与ZooKeeper间的连接超时时间。
当超时时间到后,ReigonServer会被ZooKeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.
hbase.zookeeper.quorum:默认值是localhost,列出zookeepr ensemble中的servers hbase.master.info.port:浏览器的访问端口
修改regionservers文件
vim $HBASE_HOME/conf/regionserversvim $HBASE_HOME/conf/regionservers删除localhost,每一行写一个slave节点主机机器名
mastermaster创建hbase.tmp.dir目录
mkdir $HBASE_HOME/tmpmkdir $HBASE_HOME/tmp同步安装文件到从节点
scp -r /opt/hbase slave1:/opt/scp -r /opt/hbase slave1:/opt/scp -r /opt/hbase slave2:/opt/scp -r /opt/hbase slave2:/opt/修改hbase权限并切换hadoop用户(可选)
TIP
从节点的以此类推
chown -R hadoop:hadoop /opt/hbase/chown -R hadoop:hadoop /opt/hbase/su - hadoopsu - hadoop启动HBase
先启动Hadoop,然后启动ZooKeeper,最后启动HBase
需要确保Hadoop和ZooKeeper已经启动
start-all.shstart-all.shzkServer.sh startzkServer.sh start启动HBase:
start-hbase.shstart-hbase.sh[root@master conf]# start-hbase.sh
starting master, logging to /opt/hbase/logs/hbase-root-master-master.centos.com.out
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase-1.2.1/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.7/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]
master: starting regionserver, logging to /opt/hbase/bin/../logs/hbase-root-regionserver-master.centos.com.out
master: OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
master: OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
[root@master conf]#[root@master conf]# start-hbase.sh
starting master, logging to /opt/hbase/logs/hbase-root-master-master.centos.com.out
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase-1.2.1/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.7/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]
master: starting regionserver, logging to /opt/hbase/bin/../logs/hbase-root-regionserver-master.centos.com.out
master: OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
master: OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
[root@master conf]#访问浏览器地址
访问浏览器地址: http://master:60010