HBase安装依赖于正在运行的Haddop集群和ZooKeeper集群 软件版本: hadoop:3.1.2 zookeeper:3.4.13 hbase:2.1.3
前置工作 1)集群时间同步参考博客:集群时间同步 集群时间同步这一步是必须做的,否则HBase可能会启动不起来。
2)Hadoop安装配置参考博客:Hadoop安装配置
3)Hadoop安装配置参考博客:Hadoop安装配置 Hadoop集群的正常部署并启动: $ sbin/start-dfs.sh $ sbin/start-yarn.sh
Zookeeper安装配置参考博客:Zookeeper安装配置 保证Zookeeper集群的正常部署并启动: $ bin/zkServer.sh start $ bin/zkServer.sh start $ bin/zkServer.sh start
HBase具体安装先在hcslave上面进行操作:
1)解压 解压HBase到/usr/local目录:$ tar -zxvf hbase-2.1.3-bin.tar.gz -C /usr/local/hbase-2.1.3
配置环境变量并刷新 刷新:source /etc/profile
export JAVA_HOME=/usr/local/hbase-2.1.3/jdk1.8.0_144
export HBASE_MANAGES_ZK=false
其中:BASE_MANAGES_ZK=false表示使用我们自己安装zookeeper集群而不是hbase自带的zookeeper集群。
最终修改后的代码:
hbase.rootdir
hdfs://hcmaster:8020/hbase
hbase.master.port
16000
hbase.master.info.port
16010
hbase.cluster.distributed
true
hbase.zookeeper.quorum
hcmaster:2181,hcslave1:2181,hcslave2:2181
hbase.zookeeper.property.dataDir
/usr/local/hbase-2.1.3/data/
hbase.unsafe.stream.capability.enforce
false
说明:
- hbase.master.info.port:高版本的hbase的master web 默认是不运行的,所以需要自己配置默认端口。
- hbase.rootdir:这个目录是region server的共享目录,用来持久化Hbase。URL需要是’完全正确’的,还要包含文件系统的scheme
- hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。
- hbase.zookeeper.property.dataDir:ZooKeeper的zoo.conf中的配置。对于独立的Zookeeper,要指明Zookeeper的host和端口。需要在 hbase-site.xml中设置。hbase.zookeeper.property.dataDir目录需要提前创建。
hcmaster
hcslave1
hcslave2
在这里列出了你希望运行的全部 HRegionServer,一行写一个host , 列在这里的server会随着集群的启动而启动,集群的停止而停止。
软连接hadoop配置文件到hbase:ln -s /usr/local/hadoop3.1.2/etc/core-site.xml /usr/local/hbase-2.1.3/conf/core-site.xml ln -s /usr/local/hadoop3.1.2/etc/hdfs-site.xml /usr/local/hbase-2.1.3/conf/hdfs-site.xml
远程拷贝 远程拷贝HBase文件到其他机器$ xsync hbase/
远程拷贝/etc/profile到其他机器 启动HBase注:只需要在hcmaster上启动一次就行了。
启动单个Hbase进程:$ bin/hbase-daemon.sh start master $ bin/hbase-daemon.sh start regionserver
提示:如果集群之间的节点时间不同步,会导致regionserver无法启动,抛ClockOutOfSyncException异常。修复提示: a、同步时间服务 b、属性:hbase.master.maxclockskew设置更大的值
hbase.master.maxclockskew
180000
Time difference of regionserver from master
启动Hbase集群
$ bin/start-hbase.sh
停止HBase:$ bin/stop-hbase.sh
Hbase WEB管理工具HBase集群启动成功后,可以通过Web页面查看Hbase集群情况:
HMaster端口参数:hbase.master.info.port默认值是16010 网址:http://hcmaster:16010 注:上面网址中的hcmaster不是确定的,具体是哪个主机,需要通过查看jps,具体值为HMaster进程所在的主机。
端口参数:hbase.regionserver.info.port默认值是16030 网址:http://hcmaster:16030/rs-status
Hbase在HDFS上的文件目录: 说明:
- .tmp:临时目录,当对表做创建和删除的时候,会将表move到该目录下,然后进行操作。
- WALs(wite hot log):预定日志文件,它是RegionServer在处理数据插入和删除的过程中用来记录操作内容的一种日志。比如向Hbase中写入数据时,首先会在HDFS中存储一份Hlog文件,然后会在Region中存储数据,Region中存储的数据分为以下两个部分:
- 内存
- spill到磁盘、文件、hdfs文件
- data:核心目录,存储Hbase表的数据。默认情况下,Data目录下有两个目录:
- default:在用户创建表没有指定namespace时,表就创建在此目录下
- hbase:系统内部创建的表
- hbase.id:存储的是uuid方式生成的集群唯一的cluster id
- version:集群的版本号
- oldWALs:对应0.94.x版本中.oldlogs目录。当WALs目录中的logs没有用之后,会将这些logs移动到此目录下,HMaster会定期进行清理。