Acceldata ODP(Open Data Platform)3.3.6.4(RHEL9)保姆级完整安装手册

Acceldata ODP (Open Data Platform )3.3.6.4 (RHEL9 )保姆级完整安装手册

环境说明

  • 系统:RHEL 9.2 / 9.4 x86_64(必须 RHEL9,CentOS Stream9 也可兼容,Rocky9 测试可用)
  • ODP 版本:3.3.6.4,Python3 + JDK17 栈(重点!不要 JDK8)
  • 架构:Ambari Server 1 台 + Ambari Agent 多台(Hadoop 集群节点)
  • 模式:在线 yum 源安装;文末附带离线 RPM 部署差异
  • 账号:全程使用 root 执行(所有节点)
  • 前置约定:

你需要把下面所有示例主机名、IP 替换成你自己集群的真实信息

⚠️ 重要硬性规则(不满足后面 100% 报错)

  1. 主机名不能带下划线、大写字母、空格 ,不能是localhost
  2. 所有节点 FQDN 必须互相 ping 通,DNS 或者 /etc/hosts 解析
  3. 所有节点时间同步,时间差必须<1 秒
  4. 所有节点 root 密码一致(方便免密 ssh,可选但强烈推荐)

第 0 步:规划清单(先填好,再动手!)

表格

角色 主机名 FQDN IP 数据盘目录
Ambari Server odp-master01.example.com 192.168.1.100 /data1
Agent1 odp-node01.example.com 192.168.1.101 /data1,/data2
Agent2 odp-node02.example.com 192.168.1.102 /data1,/data2

数据目录:提前建好,mkdir -p /data1,权限chmod 755 /data1,不要用 root 挂载权限 777


第一部分:【所有节点统一执行】基础环境准备

一共 N 台机器,每一台都要执行下面全部命令,master 也属于集群节点,也要执行

1.1 修改主机名(每个节点单独执行,改成自己的 FQDN )

master节点执行

hostnamectl set-hostname odp-master01.example.com

node01节点执行

hostnamectl set-hostname odp-node01.example.com

node02节点执行

hostnamectl set-hostname odp-node02.example.com

新开终端,hostname 查看是否生效

1.2 配置 /etc/hosts 全集群解析(所有节点都要写一模一样的 hosts )

vi /etc/hosts

写入内容(替换成你自己 IP 和主机名)

192.168.1.100 odp-master01.example.com odp-master01

192.168.1.101 odp-node01.example.com odp-node01

192.168.1.102 odp-node02.example.com odp-node02

保存退出 ESC → :wq

验证:每台机器 ping 所有 FQDN,必须通

ping odp-master01.example.com

ping odp-node01.example.com

ping odp-node02.example.com

1.3 关闭 SELinux (永久关闭,所有节点)

临时关闭

setenforce 0

永久关闭

sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

查看状态,确认是disabled

getenforce

1.4 关闭防火墙 firewalld (测试环境直接关;生产环境后面单独放端口)

systemctl stop firewalld

systemctl disable firewalld

验证

systemctl status firewalld

1.5 系统 ulimit 配置(Hadoop 必须,所有节点)

vi /etc/security/limits.conf

文件末尾追加下面内容

* soft nofile 102400

* hard nofile 102400

* soft nproc 65535

* hard nproc 65535

生效方式:重新登录 ssh 会话,重新登录后用ulimit -n验证,输出 102400 才算成功

1.6 内核参数优化(所有节点)

vi /etc/sysctl.conf

追加:

vm.swappiness=10

net.ipv4.tcp_syncookies=1

加载生效

sysctl -p

1.7 时间同步 chrony (所有节点,必须!时间不一致集群直接起不来)

dnf install chrony -y

systemctl enable --now chronyd

查看同步状态,System time : synchronized 才算成功

chronyc tracking

1.8 开启 RHEL9 CRB 源 + 安装 epel 、基础依赖包(所有节点)

RHEL9 必须开启 CRB(旧叫 PowerTools),否则很多依赖包找不到

dnf config-manager --enable crb

dnf install -y epel-release wget curl net-tools tar unzip openssl-devel openssh-clients

1.9 创建数据目录(所有节点,按你的规划)

示例:

mkdir -p /data1 /data2

chmod 755 /data1 /data2


第二部分:仅 Ambari Server 节点(odp-master01 )配置免密 SSH

目标:ambari-server 节点 root 可以免密 ssh 登录所有 agent 节点(包括自己)

1.生成ssh密钥,一路回车,不要设置密码

ssh-keygen -t rsa

2.分发公钥到每一台节点,输入对应节点root密码

ssh-copy-id root@odp-master01.example.com

ssh-copy-id root@odp-node01.example.com

ssh-copy-id root@odp-node02.example.com

✅ 验证免密(master 节点执行,不需要输密码就是成功)

ssh root@odp-node01.example.com hostname

ssh root@odp-node02.example.com hostname


第三部分:【所有节点】配置 Acceldata ODP yum 源

所有节点,master + 所有 agent 都执行!

下载官方repo文件

wget https://mirror.odp.acceldata.dev/v2/odp/python3/jdk17/3.3.6.4-1/repofiles/rhel9/ambari-odp-1.repo -O /etc/yum.repos.d/ambari-odp-1.repo

清理缓存,重建yum元数据

dnf clean all

dnf makecache

检查源是否识别,能看到odp相关仓库即正常

dnf repolist enabled | grep odp

如果网络访问 mirror.odp.acceldata.dev 超时,就切换离线部署方案,后面单独讲


第四部分:【仅 Ambari Server 节点】安装 ambari-server

4.1 安装 ambari-server RPM 包

dnf install -y ambari-server

校验是否装上

rpm -qa | grep ambari-server

4.2 ambari-server setup 交互式初始化(重点!一步一步看选项)

ambari-server setup

逐项回答:

  1. Customize user account for ambari-server daemon? y/n n → 使用默认 ambari 用户
  2. Enter choice (1): 1 → Install JDK
  3. Select JDK version:

必须选 JDK17 !!ODP3.3.6.4 RHEL9 栈只能 JDK17 ,不要 JDK8

  1. JDK 安装路径默认即可
  2. Database setup:

测试环境:n,使用内嵌 PostgreSQL,简单省事 生产环境:y,外置 PostgreSQL15,需要提前建好库、用户、授权

  1. Proceed with customizations y/n: y 确认开始自动部署数据库、配置文件

⚠️ 外置 PostgreSQL 简要前置(生产用,测试跳过)

create database ambari;

create user ambari with encrypted password '你的密码';

grant all privileges on database ambari to ambari;

4.3 启动 ambari-server 并设置开机自启

systemctl enable ambari-server

systemctl start ambari-server

查看状态,running才算正常

ambari-server status

✅ 访问 Web 界面 浏览器打开:http://192.168.1.100:8080 默认账号:admin 密码:admin

打不开排查:防火墙是否关闭;8080 端口是否监听 ss -tlnp | grep 8080


第五部分:【所有 Agent 节点(含 master 如果也要做 agent )】安装 ambari-agent

集群所有数据节点、master 如果也要部署组件,全部执行下面命令

dnf install -y ambari-agent

5.1 修改 agent 配置,指向 ambari-server FQDN

vi /etc/ambari-agent/conf/ambari-agent.ini

找到 server 段落,修改 hostname

server

hostname = odp-master01.example.com

port = 8440

保存退出

5.2 启动 ambari-agent ,开机自启

systemctl enable ambari-agent

systemctl start ambari-agent

查看状态

ambari-agent status

agent 正常会显示:Agent is running and waiting for registration


第六部分:Ambari Web UI 向导部署 ODP 3.3.6.4 (最容易踩坑环节,一步一步点)

打开 http://<masterIP>:8080,admin/admin 登录

Step1 Launch Install Wizard

点击 Launch Install Wizard,输入集群名字,例如 odp-cluster → Next

Step2 Install Options (节点列表 + 私钥)

  1. Target Hosts:把所有集群 FQDN 一行一个粘贴进去

odp-master01.example.com

odp-node01.example.com

odp-node02.example.com

  1. Host Registration Information 选择 Provide your private key

在 master 节点,复制 root 私钥内容:cat /root/.ssh/id_rsa 把输出全部文本粘贴到框内 不要粘贴公钥 id_rsa.pub!!是私钥 id_rsa

  1. 勾选:Perform repository search on hosts → Next

这里 Ambari 会自动连接所有节点,检测主机、yum 源、依赖。全部节点绿色对勾才可以下一步,有红色报错必须先解决,不要强行继续!

Step3 Choose Version

选择版本:ODP 3.3.6.4 (RHEL9, Python3, JDK17) 在线模式:直接选 Use existing repositories 离线模式:勾选 Local Repository,上传 VDF 文件,填写本地 yum 源地址 Next

Step4 Choose Services

勾选你需要安装的大数据组件,推荐最小起步:

  • Zookeeper
  • HDFS
  • YARN + MapReduce2
  • Spark
  • Hive

Kafka、Ozone、NiFi 按需勾选,不需要就取消,减少部署时间 Next

Step5 Assign Masters (分配主角色)

把 NameNode、ResourceManager、Hive Metastore 等主组件分配到对应主机,一般主节点放 master 机器。

注意:一个组件只能选一台机器,不要重复分配 Next

Step6 Assign Slaves and Clients

DataNode、NodeManager 等从节点,勾选所有数据节点。 Next

Step7 Customize Services 【重点配置】

逐个服务修改参数:

  1. JDK 路径:确认是 JDK17 路径
  2. HDFS:
    • NameNode 目录:/data1/hadoop/namenode
    • DataNode 目录:/data1/hadoop/datanode,/data2/hadoop/datanode
  3. YARN:NodeManager 本地目录 /data1/yarn/nm-local-dir

所有目录必须提前建好,权限 755,否则安装报错

  1. 内存配置:根据服务器内存调整,不要超过物理内存

内存参数如果看不懂,先用默认值,部署完再调 Next

Step8 Review

核对所有主机、组件分配,确认无误 → Deploy

Step9 等待部署执行

页面会实时滚动日志,分阶段:

  1. 在所有节点安装 ODP 组件 RPM 包
  2. 配置所有组件
  3. 格式化 HDFS
  4. 启动所有服务

中途失败:看日志,大部分是:host 解析错误、目录不存在、权限不对、yum 源无法下载包、时间不同步。修复后重试。

✅ 全部成功:所有服务状态绿色 Started

Step10 安装后校验(UI )

每个服务点进去 → Actions → Run Service Check,全部服务检查通过。


第七部分:命令行验证(master 节点执行)

查看hadoop版本

hadoop version

spark版本

spark-submit --version

查看安装的ODP rpm包

rpm -qa | grep odp

hdfs基础测试

hdfs dfs -mkdir /test

hdfs dfs -ls /


第八部分:离线 RPM 包部署完整步骤(无外网场景)

场景:集群不能访问外网 mirror.odp.acceldata.dev

  1. 找一台能上网的 RHEL9 机器,下载全部 RPM 包

安装下载工具

dnf install yumdownloader createrepo -y

下载ODP3.3.6.4全套rpm

yumdownloader --resolve --destdir=/odp-rpm https://mirror.odp.acceldata.dev/v2/odp/python3/jdk17/3.3.6.4-1/releases/rhel9/

  1. 把/odp-rpm目录拷贝到内网 http 服务器(如 nginx)
  2. 在 rpm 目录执行 createrepo 生成 yum 元数据

createrepo /odp-rpm

  1. 修改 ambari-odp-1.repo,修改 baseurl 为内网 http 地址,gpgcheck=0
  2. 所有节点分发这个修改后的 repo 文件,dnf clean all && dnf makecache
  3. 后续 ambari-server/agent 安装 + UI 部署流程和在线一模一样

第九部分:高频踩坑清单(保姆级排错)

  1. ❌ Ambari 注册 agent 失败
    • 检查:/etc/hosts FQDN、免密 ssh 是否正常、agent.ini 里 hostname 写的是 FQDN 不是 IP
  2. ❌ DataNode 启动失败
    • 缺少 bigtop-jsvc 包:dnf install bigtop-jsvc -y
    • 数据目录权限错误、目录不存在
  3. ❌ yum makecache 失败
    • 外网不通;离线场景 baseurl 写错;RHEL9 CRB 源没开
  4. ❌ 集群部署卡在下载 RPM 包
    • 网络问题,切换离线部署
  5. ❌ JDK 版本错误
    • ODP3.3.6.4 RHEL9 栈强制 JDK17,不要装 JDK8,会出现 Hive/Spark 各种异常
  6. ❌ 时间不同步 chrony 没装好,节点时间差超过 1 秒 → ZK、HDFS 不停报错

第十部分:生产环境防火墙端口放行(不关闭 firewalld 时使用)

Ambari Server

firewall-cmd --permanent --add-port=8080/tcp

firewall-cmd --permanent --add-port=8440/tcp

firewall-cmd --permanent --add-port=8441/tcp

HDFS

firewall-cmd --permanent --add-port=50070/tcp

firewall-cmd --permanent --add-port=50075/tcp

firewall-cmd --permanent --add-port=50010/tcp

YARN

firewall-cmd --permanent --add-port=8088/tcp

firewall-cmd --permanent --add-port=8042/tcp

ZK

firewall-cmd --permanent --add-port=2181/tcp

firewall-cmd --reload


附赠:一键前置检查脚本(所有节点直接执行,输出检查报告)

#!/bin/bash

echo "=====主机名检查====="

hostname

cat /etc/hosts

echo -e "\n=====SELinux状态====="

getenforce

echo -e "\n=====防火墙状态====="

systemctl status firewalld

echo -e "\n=====ulimit====="

ulimit -n

ulimit -u

echo -e "\n=====时间同步====="

chronyc tracking

echo -e "\n=====yum源检查====="

dnf repolist enabled | grep odp

保存为 precheck.sh,chmod +x precheck.sh && ./precheck.sh

相关推荐
邓工说电2 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
阿里云大数据AI技术2 小时前
Lance 数据检索怎么选,当然阿里云 Milvus 向量湖
人工智能
出海客2 小时前
跨境电商多语言客服知识库怎么建:资料结构、检索边界与人工升级
大数据·人工智能
liliangcsdn2 小时前
派息率指标的应用探索和分析
大数据·算法
sunxunyong2 小时前
hs2偶发连接失败问题处理
hadoop
adinnet20262 小时前
企业微调大模型(Fine-tuning):先吃透 RAG 还是先训自己的模型
大数据·数据库
xsd202411182 小时前
从自主导航到视觉读表:一台工业巡检机器人的全栈技术链路拆解
人工智能
袁哥大话安全2 小时前
巡隐WEBSHELL扫描软件
人工智能·安全·web
论文复现现场3 小时前
8卡4090能跑70B吗?Llama-2显存预算、QLoRA与通信瓶颈
人工智能·深度学习·分布式训练·llama·显存·qlora·算家云