注意事项
本文基于 Ubuntu 22.04 LTS 适配,部分包名和配置与 RedHat/Rocky/CentOS 有差异,请勿直接复用其它系统命令。如遇疑难欢迎在
VX 或 QQ 群与作者交流。
附录:完整内容和源代码下载请参照
https://doc.janettr.com/
1. 修改所有节点主机名 🖥️
在多节点集群环境下,主机名规范化不仅能提高系统可读性,还能在自动化批量部署和故障排查中带来极大便利。建议命名风格统一且易辨识。
IP 地址 | 主机名 |
---|---|
192.168.3.1 | dev1 |
192.168.3.2 | dev2 |
192.168.3.3 | dev3 |
# 192.168.3.1
sudo hostnamectl set-hostname dev1
# 192.168.3.2
sudo hostnamectl set-hostname dev2
# 192.168.3.3
sudo hostnamectl set-hostname dev3
主机名更改仅影响当前节点,如需集群内主机名互通,务必同步维护
/etc/hosts
文件,并在所有节点写入完整的 IP
与主机名映射。这样即使没有独立 DNS,也能保障服务部署和节点通信。
192.168.3.1 dev1
192.168.3.2 dev2
192.168.3.3 dev3
这样即使 DNS 异常,节点间依然可直接用主机名互通,极大提高了集群可靠性。
2. 配置国内 Ubuntu 22.04 APT 镜像源 🇨🇳
系统源的速度和稳定性直接影响到后续所有依赖包的获取。对于企业或离线集群,建议优先使用自建私服或本地镜像,极大提升安装效率并规避“包丢失”风险。
2.1 推荐:自建 apt 私服或局域网镜像仓库
适合大规模集群部署或离线场景,所有节点统一指向一个内网镜像源,彻底规避外网依赖和包不可控风险。
deb [trusted=yes] http://172.20.0.2:8081/repository/ubuntu22-tsinghua/ jammy main restricted universe multiverse
deb [trusted=yes] http://172.20.0.2:8081/repository/ubuntu22-tsinghua/ jammy-updates main restricted universe multiverse
deb [trusted=yes] http://172.20.0.2:8081/repository/ubuntu22-tsinghua/ jammy-security main restricted universe multiverse
deb [trusted=yes] http://172.20.0.2:8081/repository/ubuntu22-tsinghua/ jammy-backports main restricted universe multiverse
2.2 使用公有云镜像仓库
如在公网环境,可直接替换为阿里云/清华/中科大等镜像源,更适合云主机和测试环境。
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
镜像选择优先顺序建议:企业内网私服 > 公有云国内镜像。如有条件推荐配置公司总部 apt 仓库做全网统一管控。
更换源后务必执行:
sudo apt update
建议同步配置主流组件源,否则部分依赖包安装会提示“未找到”。
3. 批量安装基础系统工具 🔧
大数据平台、Ambari/Bigtop 等生态对系统依赖包要求极高,不仅涉及开发编译,还包含文档构建、认证、压缩、网络、同步等多方面。
3.1 推荐批量安装命令(Ubuntu 22.04专用)
sudo apt update && sudo apt -y install \
asciidoc autoconf automake libbz2-dev cmake libcppunit-dev \
libsasl2-dev curl docbook2x fuse libfuse-dev libfuse2 \
gcc g++ git iproute2 libkrb5-dev less libtirpc-dev libtool \
libxml2-dev lsof liblzo2-dev make net-tools openssh-server \
libssl-dev patch procps protobuf-compiler python3 lsb-release \
rsync libsnappy-dev sudo tar unzip vim wget which xmlto zlib1g-dev
3.2 主要依赖简析
工具/库 | 作用与场景 |
---|---|
gcc/g++ | 编译 C/C++ 源码,Hadoop/Spark/HBase 均需 |
make/cmake | 兼容绝大多数开源项目的构建系统 |
libssl-dev | 各类安全传输/证书/组件认证 |
python3 | 现代脚本与大数据生态依赖 |
protobuf-compiler | Hadoop/Yarn/Tez 通信协议编解码 |
libbz2-dev/libsnappy-dev/liblzo2-dev | 各类数据压缩依赖,提升数据存取与传输效率 |
libxml2-dev/asciidoc/xmlto/docbook2x | XML 解析及文档生成,便于文档自动化 |
libsasl2-dev/libkrb5-dev | Kerberos 安全认证(Hadoop/Yarn常见) |
fuse/libfuse-dev/libfuse2 | 支持分布式挂载与云盘文件系统 |
libcppunit-dev | 组件源码单元测试需要 |
lsb-release | 兼容性信息/部分工具依赖 |
lsof/net-tools/iproute2 | 网络监控与故障定位 |
openssh-server | 远程管理与自动化部署 |
rsync | 批量分发与高效同步 |
git/wget/curl/tar/unzip | 版本管理、下载与解压缩 |
sudo/which/less | 系统级运维与管理 |
libtirpc-dev/libtool/procps | 低层 RPC、编译与进程管理 |
部分特殊包如
docbook2x
、libcppunit-dev
可能不是所有业务都要,但在自定义编译大数据组件、自动化测试、文档流水线等场景极为常用。建议全量装齐,无后顾之忧。