大家好,我是风云,欢迎大家关注我的博客,在未来的日子里我们一起来学习大数据相关的技术,一起努力奋斗,遇见更好的自己!
前言
HBase
是一个开源的、分布式的、版本化的非关系型数据库,它利用Hadoop
分布式文件系统(Hadoop Distributed File System,HDFS
)提供分布式数据存储。存储结构化和半结构化的数据,可以进行随机访问的存取和检索数据。
HBase
是非关系型数据库,它不具备关系型数据库的一些特点,例如,它不支持 SQL
的跨行事务,也不要求数据之间有严格的关系,同时它允许在同一列的不同行中存储不同类型的数据。
HBase
作为 Hadoop
框架下的数据库,是被设计成在一个服务器集群上运行的。
今天就来分享一下HBase
集群搭建的详细过程。
详细步骤
前期准备:
- 准备三个虚拟机:
192.168.36.121 hadoop1
192.168.36.122 hadoop2
192.168.36.123 hadoop3
- 虚拟机上配置有
ssh
服务,可以进行免密登录 - 安装
JDK
- 安装Hadoop集群并启动HDFS服务
- 安装zookeeper集群并启动
1、下载安装包
cd /opt/module # 下载hbase安装包 wget https://archive.apache.org/dist/hbase/2.2.4/hbase-2.2.4-bin.tar.gz
2、解压
# 解压 tar -zxvf ./hbase-2.2.4-bin.tar.gz mv hbase-2.2.4 hbase
3、修改配置文件
3.1 修改hbase-env.sh文件
cd /opt/module/hbase/conf # 打开文件 vim hbase-env.sh # 添加如下内容 export HBASE_MANAGES_ZK=false
3.2 修改hbase-site.xml
vim hbase-site.xml # 修改为如下内容 <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop1:8020/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop1,hadoop2,hadoop3</value> </property> </configuration>
3.3 修改regionservers文件
# 修改为如下内容 hadoop1 hadoop2 hadoop3
4、分发hbase目录
# 将hbase目录同步到集群其他节点 scp -r /opt/module/hbase hadoop2:/opt/module scp -r /opt/module/hbase hadoop3:/opt/module
5、启动HBase集群
注意: 只有当
Hadoop
退出安全模式时,当查看http://hadoop1:9870/
页面中出现Security is off Safemode is off
.时 我们再启动Hbase
集群!!!
# 启动集群 cd /opt/module/hbase bin/start-hbase.sh
6、查看HBase Web UI
我们可以通过Web UI
方式来访问HBase
管理页面,连接地址:http://hadoop1:16010
,这里的hadoop1
要修改为你自己的IP
地址或者主机名!!!能够成功访问,说明HBase
集群启动成功。
在搭建过程中可能会遇到的问题:
问题:java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of ‘hbase.procedure.store.wal.use.hsync’ to set the desired level of robustness and ensure the config value of ‘hbase.wal.dir’ points to a FileSystem mount that can provide it.
解决办法:
1.在hbase-site.xml
增加配置
<property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property>
2.将该文件同步到其他节点
scp -r /opt/module/hbase/conf/hbase-site.xml hadoop2:/opt/module/hbase/conf scp -r /opt/module/hbase/conf/hbase-site.xml hadoop3:/opt/module/hbase/conf
3.重启HBase
集群
# 停止集群 /opt/module/hbase/bin/stop-hbase.sh # 启动集群 /opt/module/hbase/bin/start-hbase.sh
最后,附上整个hbase-site.xml
的配置内容:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop1:8020/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop1,hadoop2,hadoop3</value> </property> <!-- 解决启动HMaster无法初始化WAL的问题 --> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> <!-- Phoenix 支持HBase 命名空间映射 --> <property> <name>phoenix.schema.isNamespaceMappingEnabled</name> <value>true</value> </property> <property> <name>phoenix.schema.mapSystemTablesToNamespace</name> <value>true</value> </property> </configuration>
好了,HBase
集群的搭建过程就顺利完成了!
希望大家都能有所收获,喜欢的可以点赞和收藏,有疑问的可以在评论区留言,也欢迎转发分享给更多的人!