Habse 集群安装

1 历史版本

https://archive.apache.org/dist/hbase/

2 环境需求

192.168.38.150 hadoop
192.168.38.151 hadoop zookeeper
192.168.38.152 hadoop

3 解压

tar -zxvf hbase-2.4.11-bin.tar.gz
rm -rf hbase-2.4.11-bin.tar.gz

4 配置环境变量

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8
export HADOOP_HOME=/usr/local/hadoop-3.1.3
export HBASE_HOME=/usr/local/hbase-2.4.11

export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$PATH

source /etc/profile

在这里插入图片描述

5 修改hbase-env.sh配置文件

vim hbase-env.sh


# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
# 不使用Hbase自带的ZK
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/local/jdk1.8

6 修改hbase-site.xml配置文件


vim hbase-site.xml


<!--使用集群模式部署-->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

  <!--zk 集群-->
   <property>
         <name>hbase.zookeeper.quorum</name>
         <value>hadoop2</value>
         <description>The directory shared by RegionServers.</description>
   </property>

  <!--hdfs目录-->
   <property>
         <name>hbase.rootdir</name>
         <value>hdfs://hadoop1:8020/hbase</value>
         <description>The directory shared by RegionServers. </description>
   </property>

7 修改regionservers 配置文件

hadoop1
hadoop2
hadoop3

8 同步到其它环境

scp -r ./hbase-2.4.11 hadoop2:/usr/local/
scp -r ./hbase-2.4.11 hadoop3:/usr/local/

9 启动

start-hbase.sh
stop-hbase.sh

bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

在这里插入图片描述

10 访问页面

http://hadoop1:16010

在这里插入图片描述

<think>嗯,用户想了解如何在五台Linux服务器上搭建HBase的高可用(HA)集群。我需要先回忆一下HBase的高可用架构通常是怎么设计的。HBase的高可用主要涉及两个方面:HMaster的HA和底层HDFS的HA。因为HBase依赖于HDFS存储数据,所以首先需要确保HDFS的高可用,通常是使用HDFS的HA方案,比如QJM(Quorum Journal Manager)。然后,HBase自身的HMaster也需要配置成多个节点,避免单点故障。 用户有五台服务器,可能需要考虑如何分配这些资源。比如,HDFS的HA通常需要两个NameNode(一个Active,一个Standby),以及JournalNode的三个节点来管理编辑日志。这里五台服务器的话,可能可以分配两个作为NameNode,三个作为JournalNode和DataNode的组合。不过JournalNode建议至少三个节点,所以正好这三台可以同时作为DataNode和JournalNode,剩下的两台作为NameNode。不过可能还需要ZooKeeper集群,因为HBase和HDFS的HA都需要Zookeeper来进行协调。通常ZooKeeper建议奇数节点,比如三个,所以可能需要在这五台服务器中选择三台来运行ZooKeeper,同时可能还承担其他角色。 接下来,具体的步骤可能需要先配置HDFS HA,然后配置ZooKeeper,再配置HBase的HA。需要确保各个组件之间的版本兼容性,比如HBase版本和Hadoop版本的匹配。另外,网络配置也很重要,比如主机名解析,SSH免密登录是否必要,比如在启动Hadoop时可能需要。 可能的步骤包括: 1. 准备环境:五台服务器,设置主机名,hosts文件,SSH免密登录,关闭防火墙,安装Java环境等。 2. 安装配置ZooKeeper集群,至少三个节点,分布在三台服务器上。 3. 安装配置Hadoop HDFS HA,使用QJM方式,两个NameNode,三个JournalNode,同时这三台也作为DataNode。另外两台可能同时作为DataNode吗?可能的话,五台服务器都作为DataNode,这样数据存储会更均衡。 4. 安装配置HBase HA,配置多个HMaster,通常两个或三个,其余的作为RegionServer。 具体分配可能如下:比如五台服务器,命名为node1到node5。假设: - node1和node2作为Hadoop的NameNode(一个Active,一个Standby)。 - node3、node4、node5作为JournalNode和DataNode,同时这三个节点也作为ZooKeeper的节点。 - HBase的HMaster可以部署在node1和node2上,而RegionServer分布在node3、node4、node5上。 不过需要确认资源是否足够,比如每个节点是否能够承担多个角色。如果服务器配置足够,这样分配是可行的。 然后,具体的配置步骤: 对于Hadoop HDFS HA的配置,需要修改hdfs-site.xml,设置nameservices,配置NameNode的RPC地址,HTTP地址,故障转移的代理类,以及JournalNode的地址。同时需要配置自动故障转移,这需要依赖ZooKeeper。 对于HBase的HA,主要是配置hbase-site.xml,指定HBase的分布式模式,ZooKeeper集群地址,设置HBase的根目录在HDFS上,以及配置HMaster的高可用,可能通过设置hbase.master的数量,或者通过启动多个HMaster进程。 可能的注意事项包括: - 时间同步:所有节点的时间必须同步,否则可能导致ZooKeeper出现问题。 - 配置文件的分发:确保所有节点上的配置文件一致。 - 启动顺序:先启动ZooKeeper,再启动HDFS,然后启动HBase。 - 测试故障转移:手动杀死一个HMaster或NameNode,观察是否自动切换。 用户可能需要详细的步骤,例如具体的配置文件内容,如何启动各个服务,以及验证集群状态的命令。例如,如何查看HMaster的状态,如何确认RegionServer是否注册,HDFS的HA是否正常工作等。 可能的问题点包括: - 网络问题导致节点间通信失败。 - 配置文件中的主机名或端口错误。 - 资源不足,比如内存不足导致服务无法启动。 - 权限问题,比如HDFS目录权限没有正确设置,导致HBase无法写入数据。 需要提醒用户按照步骤仔细检查配置,查看日志文件排查错误。 总结来说,步骤大致分为环境准备、ZooKeeper集群搭建、Hadoop HDFS HA配置、HBase HA配置,最后是测试和验证。</think>在五台Linux服务器上搭建HBase高可用(HA)集群,需结合HDFS HA和HBase自身的高可用机制。以下是分步指南: --- ### **一、集群规划(示例节点分配)** 假设五台服务器为 `node1`-`node5`,建议角色分配: - **ZooKeeper集群**:node1、node2、node3(需奇数节点) - **HDFS NameNode**:node1(Active)、node2(Standby) - **HDFS JournalNode**:node3、node4、node5(同时作为DataNode) - **HDFS DataNode**:node3、node4、node5 - **HBase HMaster**:node1、node2(至少2个主节点) - **HBase RegionServer**:node3、node4、node5 --- ### **二、前置准备** 1. **系统配置**: - 所有节点配置静态主机名,修改 `/etc/hosts` 确保主机名解析。 - 关闭防火墙:`systemctl stop firewalld && systemctl disable firewalld` - 配置SSH免密登录(所有节点间互通)。 - 安装JDK 8+,配置环境变量(如 `JAVA_HOME`)。 --- ### **三、部署ZooKeeper集群** 1. **安装ZooKeeper**: ```bash # 所有ZooKeeper节点(node1-3)执行: wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt/ ``` 2. **配置ZooKeeper**: - 创建配置文件 `conf/zoo.cfg`: ```ini tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 initLimit=5 syncLimit=2 server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888 ``` - 在 `dataDir` 目录下创建 `myid` 文件,内容分别为1、2、3(对应各节点)。 3. **启动ZooKeeper**: ```bash bin/zkServer.sh start # 检查状态 bin/zkServer.sh status ``` --- ### **四、配置HDFS HA(使用QJM)** 1. **安装Hadoop**: - 在所有节点安装相同版本的Hadoop(如3.3.4),配置 `HADOOP_HOME`。 2. **配置HDFS HA核心参数**: - **hdfs-site.xml**: ```xml <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node1:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node1:9870</value> </property> <!-- 类似配置nn2为node2 --> <property> <name>dfs.journalnode.edits.dir</name> <value>/data/journalnode</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>node1:2181,node2:2181,node3:2181</value> </property> ``` - **core-site.xml**: ```xml <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>node1:2181,node2:2181,node3:2181</value> </property> ``` 3. **初始化与启动HDFS**: - 启动JournalNode(node3-5): ```bash hadoop-daemon.sh start journalnode ``` - 格式化NameNode(node1): ```bash hdfs namenode -format hdfs zkfc -formatZK # 初始化ZKFC ``` - 同步元数据到node2: ```bash scp -r /hadoop/data/name node2:/hadoop/data/ ``` - 启动HDFS: ```bash start-dfs.sh ``` --- ### **五、部署HBase HA** 1. **安装HBase**: - 在所有节点安装HBase(如2.4.11),配置 `HBASE_HOME`。 2. **配置HBase HA**: - **hbase-site.xml**: ```xml <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://mycluster/hbase</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>node1,node2,node3</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/var/lib/zookeeper</value> </property> ``` 3. **启动HBase**: - 在node1和node2启动HMaster: ```bash hbase-daemon.sh start master ``` - 在node3-5启动RegionServer: ```bash hbase-daemon.sh start regionserver ``` --- ### **六、验证集群** 1. **HDFS HA检查**: - 访问 `http://node1:9870` 和 `http://node2:9870`,确认NameNode状态。 - 手动切换Active NameNode:`hdfs haadmin -failover nn1 nn2` 2. **HBase HA验证**: - 访问HBase Web UI(默认端口16010),查看Master状态。 - 执行 `hbase shell` 创建测试表,确认读写正常。 --- ### **常见问题** - **时间同步**:使用NTP服务确保所有节点时间一致。 - **日志排查**:查看各组件日志(如HBase logs、Hadoop logs)定位启动失败原因。 - **资源限制**:调整 `hbase-env.sh` 和 `hadoop-env.sh` 中的堆内存参数避免OOM。 通过以上步骤,即可在五台服务器上构建一个具备HDFS和HBase双重高可用的集群环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

响彻天堂丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值