一、环境搭建
使用CentOS7系统,先删除自带的JDK,自带的不好用(例如jps终端命令不能用等)。下载官网完整的JDK,并设置环境变量JAVA_HOME。详情见:
https://blog.csdn.net/libaineu2004/article/details/80060812
二、下载稳定版habse,1.2.6版本
http://mirror.bit.edu.cn/apache/hbase/stable/
解压 tar -xzvf hbase-1.2.6-bin.tar.gz , 笔者的工作路径是/root/Downloads/hbase-1.2.6/
三、配置
1、 在单机模式中,ZooKeeper程序与HBase程序运行在同一个JVM进程中。
Hbase依赖于zookeeper,所有的节点和客户端都必须能够访问zookeeper。 HBase的安装包里面有自带的ZooKeeper,conf/hbase-env.sh文件有环境变量定义:
# export HBASE_MANAGES_ZK=true
它用来设置HBase是使用默认自带的 Zookeeper还是使用独立的ZooKeeper。
HBASE_MANAGES_ZK为 false 时使用独立的.
HBASE_MANAGES_ZK为 true 时表示使用默认自带的,即让Hbase启动的时候同时也启动自带的ZooKeeper。
如果使用自带的zookeeper,去不去掉这行环境变量注释效果都一样,默认值就是true。
也就是说conf/hbase-env.sh文件可以不需要修改。
但是我个人还是建议去掉注释比较直观,同时把JAVA_HOME也再次明确一下较好。(非必须)
export JAVA_HOME=/root/Downloads/jdk1.8.0_172
export HBASE_LOG_DIR=/usr/local/hbase/logs
export HBASE_MANAGES_ZK=true
2、在单机模式中,HBase并不使用 HDFS,仅使用本地文件系统。conf/hbase-env.sh文件不需要修改,仅仅修改conf/hbase-site.xml,指定数据文件的存放路径。
<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/hbase/hbaseData</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>file:/usr/local/hbase</value>
</property>
</configuration>
注意:
(1)HBase可以不依赖Hadoop的HDFS来部署,在单机模式下直接使用普通文件系统来存储数据。说明HBase是可以离开HDFS的。
(2)如果不修改conf/hbase-site.xml文件,默认情况下Hbase是写到/tmp的,在重启的时候/tmp会被清空,数据就会丢失。
四、终端验证,进入/root/Downloads/hbase-1.2.6/bin
[root@bogon bin]# echo $JAVA_HOME
/root/Downloads/jdk1.8.0_172
[root@bogon bin]# ./start-hbase.sh
starting master, logging to /root/Downloads/hbase-1.2.6/bin/../logs/hbase-root-master-bogon.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
[root@bogon bin]# jps
98741 Jps
98382 HMaster
[root@bogon bin]# hbase shell
2018-04-27 09:34:39,017 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017
hbase(main):001:0> list
TABLE
0 row(s) in 0.2190 seconds
=> []
hbase(main):002:0> create 'user' ,'personalinfo'
0 row(s) in 1.3250 seconds
=> Hbase::Table - user
hbase(main):003:0> list
TABLE
user
1 row(s) in 0.0460 seconds
=> ["user"]
hbase(main):004:0>
hbase(main):001:0> exit
五、因为ZooKeeper程序与HBase程序运行在同一个JVM进程中,通过jps命令只能看到HMaster,那怎么知道zookeeper启动了呢?
[root@bogon bin]# netstat -tunlp|egrep 2181
tcp6 0 0 :::2181 :::* LISTEN 5804/java
六、web监控,打开浏览器
http://localhost:16010/master-status
或者
http://192.168.83.128:16010/master-status
参考文献:https://blog.csdn.net/lisonglisonglisong/article/details/46917961
----
关于jps终端命令:
jps 是java提供的查看java进程的工具,比如我用jps命令查看,正常情况会列出如下信息:
<进程号1111> …… <进程名A>
<进程号2222> …… <进程名B>
<进程号3333> …… <进程名C>
<进程号4444> …… <Jps>
这时用kill -9 <进程号> 是可以杀掉进程的。