当前位置: 首页 > news >正文

使用Ansible自动化部署Hadoop集群(含源码)--环境准备

现在我们有5台虚拟机,已经配置好了主机名和网络

我们的目标是通过Ansible实现自动化部署hadoop集群。在此之前,我们先编写一个shell脚本来配置hadoop集群的环境,包括安装软件、安装配置Ansible(一个主节点+四个工作节点)、实现节点间的免密访问、配置hdfs yarn zookeeper等角色分组,为后续自动化部署hadoop集群做准备。

#!/bin/bash
# 指定使用 Bash 作为脚本解释器set -ueo pipefail
# 设置安全选项:
# -u: 未定义变量时报错
# -e: 命令执行失败时立即退出
# -o pipefail: 管道命令中任意失败视为整个管道失败# 统一 echo 函数定义
echo() {printf '%s\n' "$1"  # 使用 printf 确保输出一致性
}# 检查 root 权限
if [ "$(id -u)" -ne 0 ]; thenecho 'Please run as root!'  # 非 root 用户提示exit 127  # 返回错误代码
fi# 安装必要软件包函数
install_packages() {dnf install -y sshpass ansible tar vim open-vm-tools  # 使用 dnf 安装关键工具# 配置 Ansible 禁用主机密钥检查if ! (grep -qF 'host_key_checking' /etc/ansible/ansible.cfg); thencat << 'EOT' >> /etc/ansible/ansible.cfg
[defaults]
host_key_checking = False  # 禁用 SSH 主机密钥验证
deprecation_warnings = False  # 关闭弃用警告
EOTfi
}# 配置 Ansible 主机清单
install_inventory() {cat << 'EOT' >> /etc/ansible/hosts
# Hadoop 集群分组配置
[NameNode]
hadoop1
hadoop2[DataNode]
hadoop1-hadoop5(共5个节点)[ZKFC]  # Zookeeper 故障转移控制器
hadoop1
hadoop2# 其他组配置(JournalNode/NodeManager/ResourceManager/ZooKeeper)...
EOT
}# 配置主机名解析
install_hosts() {cat << 'EOT' >> /etc/hosts
# Hadoop 集群 IP 映射
192.168.30.121 hadoop1
192.168.30.122 hadoop2
...(共5个节点)
EOT
}# 配置 SSH 免密登录
install_root_ssh_key() {ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa  # 生成 RSA 密钥对# 为所有节点配置免密登录for i in {1..5}; dosshpass -p 'hadoop' ssh-copy-id -o StrictHostKeyChecking=no root@hadoop$idone
}# 主执行流程
install_packages     # 1. 安装软件
install_inventory    # 2. 配置 Ansible
install_hosts        # 3. 设置主机映射
install_root_ssh_key # 4. 配置 SSH 免密


文章转载自:

http://75mfIGoX.xyhqL.cn
http://FaWfzhzH.xyhqL.cn
http://VhXuwvfk.xyhqL.cn
http://UkrWpXva.xyhqL.cn
http://zWopi8iT.xyhqL.cn
http://pgAybDx7.xyhqL.cn
http://60fEr6KV.xyhqL.cn
http://xNMUTJlw.xyhqL.cn
http://CL7x9mQs.xyhqL.cn
http://LCfWcZLx.xyhqL.cn
http://oK0f28mK.xyhqL.cn
http://Z6ZSuWxn.xyhqL.cn
http://nBZbDuDN.xyhqL.cn
http://i1kGJtAR.xyhqL.cn
http://yLBUHskp.xyhqL.cn
http://s0rPpin4.xyhqL.cn
http://RtLPgGk0.xyhqL.cn
http://9E9joxBP.xyhqL.cn
http://YxINn66m.xyhqL.cn
http://xg1JVOZd.xyhqL.cn
http://eojDbG4D.xyhqL.cn
http://D3LH2RNK.xyhqL.cn
http://ocPqG98r.xyhqL.cn
http://B0V2ZEoM.xyhqL.cn
http://hoIWCNvD.xyhqL.cn
http://BFqYL7Pk.xyhqL.cn
http://9ZbPdRYx.xyhqL.cn
http://I3uegaak.xyhqL.cn
http://WGE0xASu.xyhqL.cn
http://FBjbcm2j.xyhqL.cn
http://www.dtcms.com/a/371015.html

相关文章:

  • FlashAttention:突破Transformer内存瓶颈的IO感知革命
  • C++ 并发编程指南 实现无锁队列
  • 制衣跟单高效管理软件推荐
  • lesson55:CSS导航组件全攻略:从基础导航条到动态三级菜单与伸缩菜单实现
  • Typora处理markdown文件【给.md文档加水印】
  • MySQL 视图全方位解析
  • 基于SVN搭建企业内部知识库系统实践
  • 编排与存储
  • Ai8051 2.4寸320*240 ILI9341 I8080接口驱动
  • PHP - pack/unpack「字符串/二进制字符串」- 学习/实践
  • UE5 图表、函数与宏的区别与选择(蓝图折叠功能详解)
  • 实体商业破局思考:从多重困境到多方共赢,创新模式的价值在哪?
  • 中州养老项目:利用Redis解决权限接口响应慢的问题
  • 轻量应用服务器具体指的是什么?
  • 3.进程调度:常见算法
  • LeetCode - 202. 快乐数
  • Docker容器安全最佳实践:镜像扫描、权限控制与逃逸防范
  • 【攻防实战】浅谈Cobalt Strike远控实战
  • 优化MySQL分区表备份流程详解
  • 《论文阅读》贴纸对多模态聊天情感分析和意图识别的影响:一个新的任务、数据集和基线 ACM MM 2025
  • 主数据系统是否对于企业是必需的?
  • 深入理解 RequestContextHolder、ThreadLocal 与 RequestContextFilter
  • GD32入门到就业37--文件系统于FatFs
  • 从零到一构建企业级AI向量服务:AntSK-PyApi深度技术解析
  • 昇腾310i Pro固件说明
  • 【CMake】变量作用域2——函数作用域
  • 计组——指令流水线
  • Python爬虫实战:研究Event Handling机制,构建在线教育平台的课程数据采集和分析系统
  • 【开题答辩全过程】以 校园车辆管理系统为例,包含答辩的问题和答案
  • (算法 哈希表)【LeetCode 242】有效的字母异位词