不用公网也能玩转大数据:手把手教你用本地Yum源部署CDH6.3.2集群
·
企业级大数据平台离线部署实战:基于本地Yum源的CDH6.3.2集群搭建指南
在金融、政务等对数据安全要求严格的行业场景中,生产环境往往需要完全隔离外网。传统依赖公网下载依赖的部署方式在此类场景下完全失效,而手动传输数百个安装包又极易出现版本冲突。本文将分享一套经过银行级项目验证的全离线部署方案,通过构建自维护的本地软件仓库,实现从操作系统工具到CDH组件的全链路内网安装。
1. 离线环境架构设计
1.1 核心组件拓扑
典型离线CDH集群包含三个逻辑层:
- 仓库层:HTTPD服务+本地Yum源(主节点)
- 控制层:Cloudera Manager Server+MySQL元数据库(主节点)
- 计算层:Agent节点+数据服务(工作节点)
# 仓库服务器最小化配置建议(10节点以内集群)
CPU: 8核+
内存: 32GB+
存储: 500GB+ (需容纳CDH parcels及所有依赖包)
网络: 千兆内网
1.2 软件包预准备
需提前下载的离线资源包:
- 基础工具集:
createrepo-0.9.9-28.el7.noarch.rpmhttpd-2.4.6-97.el7.x86_64.rpm
- CDH核心套件:
- Cloudera Manager RPM包(约1.2GB)
- CDH6.3.2 Parcel文件(约3.5GB)
- 依赖库:
- MySQL JDBC驱动(mysql-connector-java-5.1.47.jar)
- Oracle JDK8压缩包
提示:所有安装包建议通过校验SHA256确保完整性,避免传输损坏导致安装失败。
2. 系统级环境配置
2.1 集群主机标准化
每台节点需统一执行以下配置:
# 关闭防火墙和SELinux(生产环境需根据安全策略调整)
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 优化内核参数
echo "vm.swappiness = 0" >> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/enabled
sysctl -p
2.2 时间同步方案对比
内网环境推荐以下两种时间同步方案:
| 方案类型 | 配置方式 | 精度 | 适用场景 |
|---|---|---|---|
| 硬件时钟服务器 | 连接GPS/NTP授时设备 | ±1ms | 金融级高要求环境 |
| 软件NTP服务 | 指定主节点为ntp server | ±10ms | 普通企业环境 |
配置示例(软件方案):
# 主节点配置
yum install -y ntp
cat > /etc/ntp.conf <<EOF
server 127.127.1.0
fudge 127.127.1.0 stratum 10
EOF
# 工作节点配置
sed -i '/^server/d' /etc/ntp.conf
echo "server 主节点IP" >> /etc/ntp.conf
systemctl restart ntpd
3. 本地Yum源深度配置
3.1 仓库服务器搭建
分步骤构建高可用软件仓库:
-
安装HTTPD服务:
rpm -ivh httpd-2.4.6-97.el7.x86_64.rpm --nodeps systemctl start httpd && systemctl enable httpd -
组织目录结构:
mkdir -p /var/www/html/cdh6/parcels mkdir -p /var/www/html/cm6/rpms -
生成元数据:
createrepo /var/www/html/cm6/rpms
3.2 客户端配置技巧
工作节点需配置repo文件指向内网仓库:
[cloudera-manager]
name = Cloudera Manager 6.3.2
baseurl = http://主节点IP/cm6/rpms/
gpgcheck = 0
priority = 1
[cdh6]
name = CDH 6.3.2
baseurl = http://主节点IP/cdh6/
gpgcheck = 0
priority = 1
注意:优先级(priority)设置可避免与系统默认仓库冲突,建议设为最高。
4. 数据库集群化配置
4.1 MySQL高可用方案选型
针对不同规模集群的数据库部署建议:
| 集群规模 | 方案 | 优点 | 缺点 |
|---|---|---|---|
| <10节点 | 单节点MySQL | 部署简单 | 存在单点故障风险 |
| 10-50节点 | MySQL主从复制 | 读写分离 | 需处理复制延迟问题 |
| >50节点 | Galera Cluster | 多主同步,自动故障转移 | 对网络稳定性要求高 |
4.2 元数据库初始化
创建CDH所需数据库时需特别注意字符集:
CREATE DATABASE scm
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
CREATE USER 'scm'@'%' IDENTIFIED BY 'ComplexP@ssw0rd!';
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';
FLUSH PRIVILEGES;
5. 集群服务部署实战
5.1 Parcel分发优化
通过修改/etc/cloudera-scm-agent/config.ini提升分发效率:
[main]
parcel_distribute_parallelism=4 # 根据网络带宽调整并发数
parcel_install_parallelism=2 # 根据磁盘IOPS调整安装并发
5.2 典型故障处理
安装过程中常见问题及解决方案:
-
Agent注册失败:
# 检查主节点7180端口是否开放 netstat -tulnp | grep 7180 # 重置Agent注册状态 rm -f /var/lib/cloudera-scm-agent/cm_guid systemctl restart cloudera-scm-agent -
Parcel激活超时:
# 增大CM服务器JVM内存 echo 'export CMF_JAVA_OPTS="-Xmx8G -XX:+UseG1GC"' >> /etc/default/cloudera-scm-server
6. 安全加固与监控
6.1 网络隔离策略
建议采用三层防护架构:
- 前端隔离:配置iptables仅允许管理网段访问7180端口
- 服务隔离:为HDFS/YARN等组件配置Kerberos认证
- 数据隔离:启用HDFS Transparent Encryption
6.2 资源监控方案
推荐使用Cloudera Manager内置监控结合自定义指标:
# 添加自定义磁盘健康监控
CM_ALERT='{"name":"DISK_HEALTH","description":"","expression":"roles{type=DATA_NODE} / health{category=DISK} != 1","severity":"CRITICAL"}'
curl -X POST -H "Content-Type: application/json" -d "$CM_ALERT" http://admin:admin@localhost:7180/api/v40/clusters/集群名称/alerts
在最近某证券公司的离线部署项目中,这套方案成功在2小时内完成包含30个节点的CDH集群部署。关键点在于提前将所有依赖包按正确目录结构组织,并编写了自动化校验脚本确保包完整性。
更多推荐
所有评论(0)