在Debian上配置HBase的高可用性(HA)涉及多个步骤,包括设置ZooKeeper集群、配置HBase集群以及确保所有组件之间的正确通信。以下是一个基本的指南:
HBase依赖ZooKeeper来管理集群状态和协调。
下载ZooKeeper:
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
解压并移动到合适的位置:
tar -xzf apache-zookeeper-3.7.0-bin.tar.gz
sudo mv apache-zookeeper-3.7.0-bin /opt/zookeeper
创建ZooKeeper数据目录:
sudo mkdir -p /var/lib/zookeeper
sudo chown -R hadoop:hadoop /var/lib/zookeeper
配置ZooKeeper:
编辑/opt/zookeeper/conf/zoo.cfg文件,添加以下内容:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
在/var/lib/zookeeper/myid文件中设置每个节点的唯一ID(例如,在zoo1上设置为1,在zoo2上设置为2,在zoo3上设置为3):
echo 1 | sudo tee /var/lib/zookeeper/myid
启动ZooKeeper:
sudo /opt/zookeeper/bin/zkServer.sh start
下载HBase:
wget https://downloads.apache.org/hbase/stable/hbase-2.4.9-bin.tar.gz
解压并移动到合适的位置:
tar -xzf hbase-2.4.9-bin.tar.gz
sudo mv hbase-2.4.9 /opt/hbase
配置HBase环境变量:
编辑/etc/profile.d/hbase.sh文件,添加以下内容:
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin
使环境变量生效:
source /etc/profile.d/hbase.sh
编辑/opt/hbase/conf/hbase-site.xml文件,添加以下内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zoo1,zoo2,zoo3</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>16020</value>
</property>
<property>
<name>hbase.ipc.server.port</name>
<value>16030</value>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
</property>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>hbase.regionserver.global.memstore.size</name>
<value>0.4</value>
</property>
<property>
<name>hbase.regionserver.global.memstore.lower.limit</name>
<value>0.39</value>
</property>
<property>
<name>hbase.regionserver.global.memstore.block.multiplier</name>
<value>4</value>
</property>
<property>
<name>hbase.regionserver.hlog.writer.impl</name>
<value>org.apache.hadoop.hbase.regionserver.wal.HLogWriterFactory</value>
</property>
<property>
<name>hbase.regionserver.hlog.syncer.count</name>
<value>1</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.period</name>
<value>60000</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.size</name>
<value>1073741824</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.jitter</name>
<value>0</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.timer</name>
<value>60000</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.logsize</name>
<value>1073741824</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.jitter</name>
<value>0</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.timer</name>
<value>60000</value>
</property>
<property>
<name>hbase.regionserver.hlog.roll.logsize</name>
<value>1073741824</value>
</property>
</configuration>
编辑/opt/hbase/conf/hbase-env.sh文件,添加以下内容:
export HBASE_MANAGES_ZK=false
启动HBase Master:
start-hbase.sh
启动HBase RegionServer:
start-hbase-regionserver.sh
检查ZooKeeper状态:
zkServer.sh status
检查HBase Master状态:
jps
你应该能看到HMaster进程。
检查HBase RegionServer状态:
jps
你应该能看到HRegionServer进程。
确保HDFS已经正确配置并且运行。HBase需要HDFS来存储数据。
启动HDFS:
start-dfs.sh
检查HDFS状态:
hdfs dfsadmin -report
确保防火墙允许必要的端口通信。
sudo ufw allow 2181/tcp
sudo ufw allow 16000/tcp
sudo ufw allow 16020/tcp
sudo ufw allow 16030/tcp
sudo ufw enable
通过以上步骤,你应该能够在Debian上成功配置HBase的高可用性。请根据你的具体环境和需求进行调整。