拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

列族系列 · 第 04 篇——部署实操:内网集群落地

列族系列 · 第 04 篇——部署实操:内网集群落地 从离线安装到 Cassandra 与 HBase 集群目 录一、导读与节点规划二、Cassandra 集群部署2.1 依赖与解压2.2 配置 cassandra.yaml2.3 启动与验证三、HBase 集群部署3.1 依赖HDFS ZooKeeper3.2 配置 hbase-site.xml3.3 声明 RegionServer 与备 Master3.4 启动与验证四、一键部署脚本骨架五、本篇小结一、导读与节点规划前两讲明确了架构与原理本讲在内网环境从零落地。以 3 台虚机cf01 / 02 / 03为例先部署 Cassandra 对等集群再在同一批节点上搭 HBase依赖 HDFS 与 ZooKeeper。所有命令均可复制直接执行。节点IPCassandra 角色HBase 角色cf0110.10.10.71对等节点 种子HMaster RegionServer ZKcf0210.10.10.72对等节点 种子Backup Master RegionServer ZKcf0310.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-openjdktar -zxvf apache-cassandra-4.1-bin.tar.gz -C /usr/local/mv /usr/local/apache-cassandra-4.1 /usr/local/cassandramkdir -p /var/lib/cassandra useradd -r -M cassandrachown -R cassandra:cassandra /usr/local/cassandra /var/lib/cassandra2.2 配置 cassandra.yaml编辑 conf/cassandra.yaml三个节点统一 cluster_nameseeds 指向种子节点listen_address / rpc_address 填本机 IPcluster_name: cf-clusterseed_provider:- class_name: org.apache.cassandra.locator.SimpleSeedProviderparameters:- seeds: 10.10.10.71,10.10.10.72listen_address: 10.10.10.71 # 每节点填各自 IPrpc_address: 10.10.10.71endpoint_snitch: GossipingPropertyFileSnitchnative_transport_port: 90422.3 启动与验证cd /usr/local/cassandra bin/cassandra -f # 或 bin/cassandra 后台运行观察 logs/system.logbin/nodetool status# 期望输出三行均为 UNUp Normal数据中心 / 机架正确nodetool status 中 UN 表示节点正常任一节点显示 DN 说明该节点不可达。此时集群已具备写入能力。三、HBase 集群部署3.1 依赖HDFS ZooKeeperHBase 数据存于 HDFS、协调依赖 ZooKeeper。内网环境需先就绪 HDFS可伪分布式或独立集群与 ZooKeeper再部署 HBasetar -zxvf hbase-2.6-bin.tar.gz -C /usr/local/mv /usr/local/hbase-2.6 /usr/local/hbaseecho export JAVA_HOME/usr/local/java /usr/local/hbase/conf/hbase-env.sh3.2 配置 hbase-site.xml核心配置 hbase.rootdir 指向 HDFS、hbase.zookeeper.quorum 指向 ZooKeeperpropertynamehbase.rootdir/namevaluehdfs://cf01:9000/hbase/value/propertypropertynamehbase.cluster.distributed/namevaluetrue/value/propertypropertynamehbase.zookeeper.quorum/namevaluecf01,cf02,cf03/value/propertypropertynamezookeeper.session.timeout/namevalue60000/value/property3.3 声明 RegionServer 与备 Masterconf/regionservers 列出所有 RegionServerconf/backup-masters 声明备用 HMaster 实现高可用# conf/regionserverscf01cf02cf03# conf/backup-masterscf023.4 启动与验证bin/start-hbase.shjps # 主节点应有 HMaster各节点有 HRegionServerbin/hbase shell status # 确认 1 个 active master、3 个 regionserver create test, cf # 建表验证读写四、一键部署脚本骨架以下脚本按主机名自动识别角色cf01 / cf02 兼作 Cassandra 种子cf01 为主 HMastercf02 为备 HMaster三节点均作 RegionServer。生产可据此扩展为无交互一键部署。#!/bin/bash# cf-deploy.sh —— 按 hostname 识别 Cassandra 种子与 HBase 角色SELF$(hostname)SEEDS10.10.10.71,10.10.10.72IP$(grep -F $SELF /etc/hosts | awk {print $1})# Cassandra写统一集群名与种子sed -i s/^cluster_name:.*/cluster_name: \cf-cluster\/ \/usr/local/cassandra/conf/cassandra.yamlsed -i s/seeds:.*/seeds: \$SEEDS\/ \/usr/local/cassandra/conf/cassandra.yamlsed -i s/^listen_address:.*/listen_address: $IP/ \/usr/local/cassandra/conf/cassandra.yamlsu -s /bin/bash cassandra -c /usr/local/cassandra/bin/cassandra# HBasecf01 主cf02 备其余 RegionServerecho cf01 /usr/local/hbase/conf/backup-masters || trueecho -e cf01\ncf02\ncf03 /usr/local/hbase/conf/regionserverscase $SELF incf01) /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 搭建主从集群。
返回列表