Hbase集群安装
1、前提
- Centos7.6
- Hadoop 3.2.1(HA环境)
- Zookeeper 3.4.13(集群环境)
- 节点:192.168.2.75、192.168.2.77、192.168.2.46
确保已经部署上述集群环境
版本对应:
2、下载安装包
选择主机中某个节点,比如75
wget http://archive.apache.org/dist/hbase/2.4.1/hbase-2.4.1-bin.tar.gz
tar -zxvf hbase-2.4.1-bin.tar.gz /srv/dstore/1.0.0.0
cd /srv/dstore/1.0.0.0
mv hbase-2.4.1 hbase
3.修改配置
-
hbase-env.sh
export JAVA_HOME="/srv/dstore/1.0.0.0/jdk1.8.0_211" #export HBASE_PID_DIR="/srv/dstore/1.0.0.0/hbase" export HBASE_MANAGES_ZK=false
-
hbase-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定hbase在HDFS上存储的路径,HA模式填命名空间名称 --> <property> <name>hbase.rootdir</name> <value>hdfs://cluster/hbase</value> </property> <!-- 指定hbase是否分布式运行 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定zookeeper的地址,多个用“,”分割 --> <property> <name>hbase.zookeeper.quorum</name> <value>sun75:2181,sun77:2181,sun46:2181</value> </property> <!--指定hbase管理页面--> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> <!-- 在分布式的情况下一定要设置,不然容易出现Hmaster起不来的情况 --> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> <property> <name>hbase.master.port</name> <value>16000</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> </property> <property> <name>hbase.regionserver.port</name> <value>60020</value> </property> </configuration>
-
regionservers
指定HBase集群的从节点;原内容清空,添加如下三行
sun75 sun77 sun46
-
back-masters
创建backup-masters配置文件,里边包含备份HMaster节点的主机名,每个机器独占一行,实现HMaster的高可用
vi back-masters sun77
创建软连接
-
注意:三台机器均做如下操作,如果不做会报
UnknownHostException cluster
-
因为HBase集群需要读取hadoop的core-site.xml、hdfs-site.xml的配置文件信息,所以我们三台机器都要执行以下命令,在相应的目录创建这两个配置文件的软连接
ln -s /srv/dstore/1.0.0.0/hdfs/etc/hadoop/core-site.xml ./ ln -s /srv/dstore/1.0.0.0/hdfs/etc/hadoop/hdfs-site.xml ./
4、分发安装包
scp -r hbase sun77:`pwd`
scp -r hbase sun46:`pwd`
5、启动
-
后台启动HBase RegionServer
$ nohup hbase regionserver start > regionserver 2 >&1 & $./hbase-daemon.sh start master
-
后台启动HBase Master
$ nohup hbase master start > master 2 >&1 & $./hbase-daemon.sh start regionserver
6、测试
-
访问webui
http://192.168.2.75:60010/master-status
-
命令行
# 进入hbase shell hbase shell #查看帮助命令 help # 查看当前数据库有什么表 list # 创建表 create 'student','info' # 插入数据 put 'student','1001','info:sex','male' put 'student','1001','info:age','18' put 'student','1002','info:name','Janna' put 'student','1002','info:sex','female' put 'student','1002','info:age','20' #查看表数据 scan 'student'
7、疑问
上述配置安装Hbase的过程中没有配置Hadoop环境变量,Hbase是如何找到Hadoop环境并使用的,研究bin
下的文件发现hbase脚本下有段代码
HADOOP_IN_PATH=$(PATH="${HADOOP_HOME:-${HADOOP_PREFIX}}/bin:$PATH" which hadoop 2>/dev/null)
如果变量HADOOP_HOME不存在则用which
查找hadoop脚本路径,这样就查到了hadoop安装路径。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2022-08-03 8.Jenkins+Docker+SpringCloud微服务持续集成