现在参与开发的一个项目的数据都落地到Hbase中,那么因为其他同事的机器都是Windows,对Hbase兼容不太好,于是就需要借助虚拟机、测试环境等方式使用linnux进行安装,虽然安装了不知道有多少遍Hbase集群,但是仅此作为一个流水账来记录了,毕竟,我才懒得记住那些参数。
基本环境要求
- JDK1.7+ (推荐1.8
- 非root用户 (培养习惯)
- *unix操作系统 (通常只喜欢在windows下玩游戏)
使用Hbase自带的Zookeeper
下载Hbase最新稳定版
wget http://mirrors.shu.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz
解压,并配置环境变量
解压二进制安装包
tar -zxvf hbase-1.2.6-bin.tar.gz
配置环境变量
vim ~/.bashrc exprot HBASE_HOME=/home/devuser/hbase-1.2.6 export PATH=$PATH:$HBASE_HOME/bin
新增Hbase配置
vim conf/hbase-site.xml
内容如下:
<configuration> <property> <name>hbase.rootdir</name> <value>file:///data/hbasedata</value> <!-- 如果是HDFS的话,请修改为如下参数 --> <value>hdfs://data/hbasedata</value> </property> <property> <name>hbase.cluster.distributed</name> <!-- 如果是使用Hbase自带的zookeeper,此处为false --> <value>false</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/data/zkdata</value> </property> </configuration>
本文将Hbase的数据放在本地。
创建数据目录
mkdir -p /data/hbasedata mkdir -p /data/zkdata
修改hbase-env.sh
export JAVA_HOME=/usr/local/java export HBASE_MANAGES_ZK=true # 使用hbase自带的zookeeper
启动hbase
bin/start-hbase.sh
使用jps
命令查看进程,此时正确的应该只有一个名为HMaster
的进程,因为zk和regionserver的进程都包含在这个进程里。
这种做法适用于个人本地安装(macOS || linux)
使用外部Zookeeper
修改配置
如果使用外部Zookeeper的话,将上个步骤的HBASE_MANAGES_ZK
的值改为false,并修改hbase-site.xml
,如下:
<configuration> <property> <name>hbase.rootdir</name> <value>file:///data/hbasedata</value> <!-- 如果是HDFS的话,请修改为如下参数 --> <value>hdfs://data/hbasedata</value> </property> <property> <name>hbase.cluster.distributed</name> <!-- 如果使用外部zookeeper的话,请修改为如下参数 --> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>zkserver01:2181,zkserver02:2181,zkserver03:2181</value> </property> </configuration>
修改slave为:
regionserver-01 regionserver-02 regionserver-03
启动
bin/start-hbase.sh
此时,使用jps命令会发现有两个进程:
HMaster Regionserver
一般测试环境会这么部署~