本
文
摘
要
一、基本信息
HBase环境,需要依赖Hadoop环境已经搭建完成
Hadoop环境基本情况:
master:192.168.200.101
slave1: 192.168.200.102
slave2: 192.168.200.103
JDK版本:1.8
Hadoop版本:hadoop-2.7.3
二、下载软件包
1、在Window环境下载 Hbase 安装包:http://archive.apache.org/dist/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
下载Zookeeper安装包:zookeeper-3.4.9.tar.gz
2、上传服务器:rz
到 /usr/src 目录下
三、准备Zookeeper集群
cd /usr/src
解压:tar -zxvf zookeeper-3.4.9.tar.gz
cd zookeeper-3.4.9
复制:cp zoo_sample.cfg zoo.cfg
#数据存放路径
dataDir=/usr/src/zookeeper-3.4.9/data
#日志存放路径
dataLogDir=/usr/src/zookeeper-3.4.9/logs
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
cd
/usr/src/zookeeper-3.4.9/data 目录下echo 1 > myid # conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字:
远程复制第一台的zk到另外两台上,并修改myid文件为2和3
scp -r zookeeper-3.4.9 root@slave1:/usr/src/
scp -r zookeeper-3.4.9 root@slave2:/usr/src/
分别在三台机器上启动zk
./zkServer.sh start
检查ZK启动情况
./zkServer.sh status
[root@slave1 bin]# ./zkServer.sh status
控制台出现如下日志,则说明启动成功
ZooKeeper JMX enabled by default
Using config: /usr/src/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader
jps
出现 QuorumPeerMain进程,则说明启动成功。
四、HBase 集群部署
1、解压
[root@master soft]# tar -zxvf hbase-1.3.1-bin.tar.gz
2、修改HBase配置
修改 regionservers 文件内容
[root@master conf]# vi regionservers
master
slave1
slave2
修改hbase-env.sh
vim hbase-env.sh
export JAVA_HOME=/usr/src/jdk1.8.0_191
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
修改 HBASE_MANAGES_ZK属性为false
export HBASE_MANAGES_ZK=false
保存退出!
修改hbase-site.xml文件
[root@master conf]# vi hbase-site.xml
<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/var/hbase</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/src/hbase-1.3.1/dataDir</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
</configuration>
保存退出
创建tmp ,dataDir文件
[root@master hbase-1.3.1]# mkdir -p ./var/hbase //在HBASE_HOME目录下创建/var/hbase文件夹
[root@master hbase-1.3.1]# mkdir dataDir
在master ,slave1,slave2上修改环境变量 vi /etc/profile
export HBASE_HOME=/usr/src/hbase-1.3.1
export HBASE_CLASSPATH=$HBASE_HOME/conf
export HBASE_LOG_DIR=$HBASE_HOME/logs
export PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/ *** in:${HBASE_HOME}/bin
将配置好的hbase复制到其他两台机器上
[root@master conf]# scp -r hbase-1.3.1/ root@slave1:/usr/src/
[root@master conf]# scp -r hbase-1.3.1/ root@slave2:/usr/src/
启动服务
[root@master bin]# ./start-hbase.sh
检查服务是否启动成功
监控页面
在浏览器中输入 http://master:60010/,出现以下页面
关闭集群
#master
stop-hbase.sh
=============================================================================
五、HBase使用
创建表
hbase(main):012:0> create test ,c1 , c2
插入数据
hbase(main):004:0> put test,r1,c1:2,value1-1/2
0 row(s) in 0.2450 seconds
hbase(main):005:0> put test,r1,c1:1,value1-1/1
0 row(s) in 0.0370 seconds
hbase(main):006:0> put test,r1,c1:2,value1-1/2
0 row(s) in 0.0590 seconds
hbase(main):007:0> put test,r1,c1:3,value1-1/3
0 row(s) in 0.0190 seconds
hbase(main):008:0> put test,r1,c2:1,value1-2/1
0 row(s) in 0.0220 seconds
hbase(main):009:0> put test,r1,c2:2,value1-2/2
0 row(s) in 0.0160 seconds
hbase(main):010:0> put test,r2,c1:1,value2-1/1
0 row(s) in 0.0200 seconds
hbase(main):011:0> put test,r2,c2:1,value2-2/1
0 row(s) in 0.0210 seconds
查看表结构
hbase(main):014:0> scan test
ROW COLUMN+CELL
r1 column=c1:1, timestamp=1577093884206, value=value1-1/1
r1 column=c1:2, timestamp=1577093892969, value=value1-1/2
r1 column=c1:3, timestamp=1577093898749, value=value1-1/3
r1 column=c2:1, timestamp=1577093903356, value=value1-2/1
r1 column=c2:2, timestamp=1577093907716, value=value1-2/2
r2 column=c1:1, timestamp=1577093911697, value=value2-1/1
r2 column=c2:1, timestamp=1577093915661, value=value2-2/1
2 row(s) in 0.0780 seconds
查询表字段
hbase(main):015:0> get test,r1
COLUMN CELL
c1:1 timestamp=1577093884206, value=value1-1/1
c1:2 timestamp=1577093892969, value=value1-1/2
c1:3 timestamp=1577093898749, value=value1-1/3
c2:1 timestamp=1577093903356, value=value1-2/1
c2:2 timestamp=1577093907716, value=value1-2/2
1 row(s) in 0.0460 seconds
hbase(main):016:0> get test,r1,{COLUMN=>c2:2}
COLUMN CELL
c2:2 timestamp=1577093907716, value=value1-2/2
1 row(s) in 0.0140 seconds