☰
列族系列 · 第 04 篇——部署实操:内网集群落地
2026/9/28 4:35:59 网站建设 项目流程

从离线安装到 Cassandra 与 HBase 集群

目 录

一、导读与节点规划

二、Cassandra 集群部署

2.1 依赖与解压

2.2 配置 cassandra.yaml

2.3 启动与验证

三、HBase 集群部署

3.1 依赖:HDFS + ZooKeeper

3.2 配置 hbase-site.xml

3.3 声明 RegionServer 与备 Master

3.4 启动与验证

四、一键部署脚本骨架

五、本篇小结

一、导读与节点规划

前两讲明确了架构与原理,本讲在内网环境从零落地。以 3 台虚机(cf01 / 02 / 03)为例,先部署 Cassandra 对等集群;再在同一批节点上搭 HBase(依赖 HDFS 与 ZooKeeper)。所有命令均可复制直接执行。

节点

IP

Cassandra 角色

HBase 角色

cf01

10.10.10.71

对等节点 + 种子

HMaster + RegionServer + ZK

cf02

10.10.10.72

对等节点 + 种子

Backup Master + RegionServer + ZK

cf03

10.10.10.73

对等节点

RegionServer + ZK

说明:Cassandra 无主节点,全部对等;HBase 需 ZooKeeper 协调,示例用 HBase 自带的 ZooKeeper 快速起步,生产建议独立 ZooKeeper 集群。示例 IP 可替换为实际内网环境。

二、Cassandra 集群部署

2.1 依赖与解压

Cassandra 由 Java 编写,需 JDK 8+。先把二进制包放入内网源,再分发到各节点解压:

yum install -y java-1.8.0-openjdk

tar -zxvf apache-cassandra-4.1-bin.tar.gz -C /usr/local/

mv /usr/local/apache-cassandra-4.1 /usr/local/cassandra

mkdir -p /var/lib/cassandra && useradd -r -M cassandra

chown -R cassandra:cassandra /usr/local/cassandra /var/lib/cassandra

2.2 配置 cassandra.yaml

编辑 conf/cassandra.yaml,三个节点统一 cluster_name,seeds 指向种子节点,listen_address / rpc_address 填本机 IP:

cluster_name: "cf-cluster"

seed_provider:

- class_name: org.apache.cassandra.locator.SimpleSeedProvider

parameters:

- seeds: "10.10.10.71,10.10.10.72"

listen_address: 10.10.10.71 # 每节点填各自 IP

rpc_address: 10.10.10.71

endpoint_snitch: GossipingPropertyFileSnitch

native_transport_port: 9042

2.3 启动与验证

cd /usr/local/cassandra && bin/cassandra -f &

# 或 bin/cassandra 后台运行;观察 logs/system.log

bin/nodetool status

# 期望输出三行均为 UN(Up + Normal),数据中心 / 机架正确

nodetool status 中 UN 表示节点正常;任一节点显示 DN 说明该节点不可达。此时集群已具备写入能力。

三、HBase 集群部署

3.1 依赖:HDFS + ZooKeeper

HBase 数据存于 HDFS、协调依赖 ZooKeeper。内网环境需先就绪 HDFS(可伪分布式或独立集群)与 ZooKeeper,再部署 HBase:

tar -zxvf hbase-2.6-bin.tar.gz -C /usr/local/

mv /usr/local/hbase-2.6 /usr/local/hbase

echo "export JAVA_HOME=/usr/local/java" >> /usr/local/hbase/conf/hbase-env.sh

3.2 配置 hbase-site.xml

核心配置 hbase.rootdir 指向 HDFS、hbase.zookeeper.quorum 指向 ZooKeeper:

<property><name>hbase.rootdir</name>

<value>hdfs://cf01:9000/hbase</value></property>

<property><name>hbase.cluster.distributed</name><value>true</value></property>

<property><name>hbase.zookeeper.quorum</name>

<value>cf01,cf02,cf03</value></property>

<property><name>zookeeper.session.timeout</name><value>60000</value></property>

3.3 声明 RegionServer 与备 Master

conf/regionservers 列出所有 RegionServer;conf/backup-masters 声明备用 HMaster 实现高可用:

# conf/regionservers

cf01

cf02

cf03

# conf/backup-masters

cf02

3.4 启动与验证

bin/start-hbase.sh

jps # 主节点应有 HMaster,各节点有 HRegionServer

bin/hbase shell

> status # 确认 1 个 active master、3 个 regionserver

> create "test", "cf" # 建表验证读写

四、一键部署脚本骨架

以下脚本按主机名自动识别角色:cf01 / cf02 兼作 Cassandra 种子,cf01 为主 HMaster,cf02 为备 HMaster,三节点均作 RegionServer。生产可据此扩展为无交互一键部署。

#!/bin/bash

# cf-deploy.sh —— 按 hostname 识别 Cassandra 种子与 HBase 角色

SELF=$(hostname)

SEEDS="10.10.10.71,10.10.10.72"

IP=$(grep -F "$SELF" /etc/hosts | awk "{print $1}")

# Cassandra:写统一集群名与种子

sed -i "s/^cluster_name:.*/cluster_name: \"cf-cluster\"/" \

/usr/local/cassandra/conf/cassandra.yaml

sed -i "s/seeds:.*/seeds: \"$SEEDS\"/" \

/usr/local/cassandra/conf/cassandra.yaml

sed -i "s/^listen_address:.*/listen_address: $IP/" \

/usr/local/cassandra/conf/cassandra.yaml

su -s /bin/bash cassandra -c "/usr/local/cassandra/bin/cassandra"

# HBase:cf01 主,cf02 备,其余 RegionServer

echo "cf01" > /usr/local/hbase/conf/backup-masters || true

echo -e "cf01\ncf02\ncf03" > /usr/local/hbase/conf/regionservers

case "$SELF" in

cf01) /usr/local/hbase/bin/start-hbase.sh ;;

*) /usr/local/hbase/bin/hbase-daemon.sh start regionserver ;;

esac

脚本仅演示核心逻辑,生产环境还需补充 systemd 托管、日志轮转、防火墙、数据目录授权与 Cassandra 认证配置。

五、本篇小结

本讲完成了列族数据库两大代表的内网落地:Cassandra 通过 seeds + 统一集群名构建无中心集群,nodetool status 验证;HBase 依赖 HDFS 与 ZooKeeper,通过 hbase-site.xml、regionservers、backup-masters 搭建主从集群。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询