HBase学习01–Hbase的安装
一、单机模式:
1.1 解压软件包
tar -zxvf hbase-1.1.3-bin.tar.gz
1.2 配置JAVA_HOME环境变量
cd /usr/local/hbase-1.1.3/conf
vi hbase-env.sh 添加JAVA_HOME=/usr/java/jdk1.7.0_79,如下:
# The java implementation to use. Java 1.7+ required.
export JAVA_HOME=/usr/java/jdk1.7.0_79/
1.3 配置hbase-site.xml
需要配置HBase的路径和zookeeper的data dir.
cd /usr/local/hbase-1.1.3/conf
vi hbase-site.xml 添加如下:
hbase.rootdir
file:///usr/local/hbase-1.1.3
hbase.zookeeper.property.dataDir
/usr/local/hbase-1.1.3/zookeeper
1.4 启动单点hbase
启动hbase
cd /usr/local/hbase-1.1.3/
./bin/start-hbase.sh
使用jps, 发现HMaster服务起来了
进入命令行模式
./bin/hbase shell
Type "exit" to leave the HBase Shell
Version 1.1.3, r72bc50f5fafeb105b2139e42bbee3d61ca724989, Sat Jan 16 18:29:00 PST 2016
hbase(main):001:0> list
TABLE
0 row(s) in 3.4040 seconds
=> []
hbase(main):002:0>
操作成功
二、完全分布式HBase
前期工作, 关闭防火墙, selinux, 配置无密码登陆, 在Hadoop集群中已经撇孩子。 接下了,需要配置HBase
2.1 配置Hbase-site.xml- hbase.rootdir: 该参数制定了HReion服务器的位置,即数据 存放的位置。主要端口号要和Hadoop相应配置一致。
- hbase.zookeeper.property.dataDir zookeeper的数据写入目录
- hbase.cluster.distributed: HBase的运行模式。false是单机模 式,true是分布式模式。 若为false, HBase和Zookeeper会运行在同一个JVM里面。默认为f alse.
- hbase.zookeeper.quorum: 下面为基本配置:
hbase.rootdir
hdfs://TEST:9000/hbase
hbase.zookeeper.quorum
TEST,TEST1,TEST2
hbase.zookeeper.property.dataDir
/usr/local/hbase-1.1.3/zookeeper
hbase.cluster.distributed
true
2.2 配置RegionServer
配置RegionServer节点
vi regionservers
添加集群hostname
TEST
TEST1
TEST2
2.3 在HBase中配置Hadoop的路径
- 将Hadoop的配置文件目录配到HBase的CLASSPATH
- 配置JAVA_HOME
- HBASE_MANAGES_ZK:#此配置信息,表示设置由hbase自己管理zookeeper,不需要单独的 zookeeper, 本文搭建的 Hbase 用的是自带的 zookeeper,故设置 为true.
- 默认情况下pid文件保存在/tmp目录下,/tmp目录下的文件很容易丢 失,
- 解决办法:在hbase-env.sh中修改pid文件的存放路径
配置如下:
vi /hbase-env.sh
#
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
#配置JAVA环境变量
export JAVA_HOME=/usr/java/jdk1.7.0_79
#
export HBASE_MANAGES_ZK=false
#pid目录
export HBASE_PID_DIR=/usr/local/hbase-1.1.3/tmp/pidsi
2.4 在/etc/profile
配置HBase的环境变量
vi /etc/profile
#hbase
export HBASE_HOME=/usr/local/hbase-1.1.3
export PATH=$PATH:$HBASE_HOME/bin
保存,使其生效
source /etc/profile
2.5 分发到其他节点
scp -r ./hbase-1.1.3 root@TEST1:/usr/local/
scp -r ./hbase-1.1.3 root@TEST1:/usr/local/
2.6 、启动hbase 集群
cd /usr/local/hbase-1.1.3/bin
./start-hbase.sh
通过jps 查看三个节点都有HMaster和HRegionServer
于是将backup-masters
清空
重启hbase之后,只有TEST上有HMaster, 但是出现一个问题 1、TEST2上的HRegionServer挂了, 不知道为什么 2、查看TEST的日志:发现是系统时间不一致导致, 3、修改时间
- date -s '13:40:40'
4、重启HRegionServer
cd /usr/local/hbase-1.1.3/bin
./hbase-daemon.sh start regionserver
5、检查TEST2的HRegionServer已经起来了
WEB界面上是两个死的Region Server
启动集群中所有的regionserver
- ./hbase-daemons.sh start regionserver
启动某个regionserver
- ./hbase-daemon.sh start regionserver
但是每次系统时间不一致都会导致hadoop 、hbase出问题 所以要都三台节点进行时间同步,安装ntpd。