TT Bigdata TT Bigdata
首页
  • 产品中心

    • 当前版本
    • 版本矩阵与下载
  • 安装与使用

    • Ambari Plus 安装
      • 安装前准备
        • 实施总览
        • Step0—源码包下载与目录准备
        • Step1—系统源与基础工具准备
        • Step2—集群免密登录
        • Step3—主机名解析同步
        • Step4—Chrony 时间同步
        • Step5—Nginx 本地 Yum 文件服务
        • Step6—JDK 双环境准备
        • Step7—MySQL 驱动与本地仓库
        • Step8—MariaDB 初始化
        • Step9—AmbariServer 初始化
        • 必须 ambari plus 数据库初始化文件
      • 安装部署
        • 初始化集群
    • 组件安装
      • 组件安装总览
      • Solr 安装
      • Ranger 安装
      • Knox 安装
      • HDFS 安装
      • YARN 安装
      • MapReduce2 安装
      • Tez 安装
      • Hive 安装
      • Sqoop 安装
      • HBase 安装
      • Kafka 安装
      • Flink 安装
      • Spark 安装
      • Hue 安装
      • Livy 安装
      • Zeppelin 安装
      • DolphinScheduler 安装
      • Doris 安装
      • Celeborn 安装
      • Ozone 安装
      • Impala 安装
      • Trino 安装
      • Paimon 安装
      • Hudi 安装
      • Atlas 安装
      • Superset 安装
      • Alluxio 安装
    • 开启高可用
      • 开启高可用总览
      • HDFS 开启 HA
      • YARN 开启 HA
    • 权限与审计
      • 权限与审计总览
      • Kerberos 认证启用
      • LDAP 目录接入
    • Ambari Plus Monitor
      • IoTDB 安装与部署
      • 必须 ambari plus monitor 数据库初始化文件
      • Monitor 安装
      • 监控与告警使用
    • 常见问题
      • 安装使用常见问题
  • 发布与支持

    • 更新日志
    • 服务说明
    • 优惠政策
    • 合作共建
    • 蓝图愿景
    • 历史版本
      • 更新日志 · v2.2.3
      • 更新日志 · v2.2.2
      • 更新日志 · v2.2.1
      • 更新日志 · v2.2.0
      • 更新日志 · v2.1.0
      • 更新日志 · v2.0.0
      • 更新日志 · v1.0.7
      • 更新日志 · v1.0.6
      • 更新日志 · v1.0.5
      • 更新日志 · v1.0.4
      • 更新日志 · v1.0.3
      • 更新日志 · v1.0.2
      • 更新日志 · v1.0.1
      • 更新日志 · v1.0.0
  • 会员与访问

    • 专属内容解锁
  • Ambari 安装

    • 常规安装
      • 适用于Ambari3.0.0-kylin V10-aarch64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK-Bisheng
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-kylin V10-x86_64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK17与JDK1.8
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-ubuntu22.04
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地apt源
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el7
        • Step0—源码包下载
        • Step3—安装JDK17(Ambari 3.0专用)
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el8
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari2.8.0-el7
        • Step1—基础环境准备
        • Step2—免密登陆认证
        • Step3—安装JDK
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web Ui 初始化安装
    • 一键部署
      • Ambari快速部署—3.0.0
        • 【Kylin V10 aarch64】强力卸载脚本
        • 【Kylin V10 aarch64】自动安装脚本
        • 【Kylin V10 x86_64】强力卸载脚本
        • 【Kylin V10 x86_64】自动安装脚本
        • 【Ubuntu22】强力卸载脚本
        • 【Ubuntu22】自动安装脚本
        • 【Rocky8.10】强力卸载脚本
        • 【Rocky8.10】自动安装脚本
        • 【Centos7.9】自动安装脚本
      • Ambari快速部署—2.8.0
        • 【Centos7.9】自动安装脚本
        • 【Centos7.9】强力卸载脚本
      • 数据库环境
        • PostgreSQL 快速安装脚本
      • JDK环境
        • 安装JDK1.8
        • 安装JDK 17
        • 安装JDK1.8-aarch64
        • 安装JDK 17-aarch64
      • MAVEN环境
        • 安装Maven3.8.4
        • 安装Maven3.9.9
      • GRADLE环境
        • 安装Gradle5.6.4
      • CONDA环境
        • 安装Miniconda2
        • 编译Ambari2.8.0——Miniconda3
      • R环境
        • 【Kylin V10 x86_64】安装R 4.4.2
        • 【Ubuntu22】安装R 4.4.2
        • 【Rocky8.10】安装R 4.4.2
        • 【CentOS7】安装R 4.4.2
  • 组件安装

    • 安装指导
    • 魔改分享
      • Phoenix-JDK17下编译的二进制包适用于Datagrip
        • Q: 高版本 DataGrip 无法使用 Phoenix 驱动
        • A: Phoenix - JDK17 制作&下载
    • 最小化安装(简单)
      • Zookeeper 安装
      • Hadoop 安装
      • Yarn安装
      • Hive 安装
      • Spark 安装
      • HBase 安装
      • Kafka 安装
      • Sqoop 安装
      • Flink 安装
      • DolphinScheduler 安装
      • Zeppelin 安装
      • Redis 安装
      • Doris安装
      • Celeborn安装
      • Ozone安装
      • Impala安装
      • Cloudbeaver 安装
      • Ambari Metrics安装
      • Solr安装
      • Ranger 安装
      • Trino安装
      • Paimon安装
      • Hudi安装
      • Atlas 安装
      • Superset 安装
      • Livy 安装
      • Alluxio 安装
      • Hue 安装
      • Knox 安装
    • 进阶安装技巧(需开启Kerberos)
      • Ambari Metrics 进阶安装技巧
      • Atlas 进阶安装技巧
    • 高可用安装(有难度)
      • Zookeeper
      • Hadoop-Namenode
      • Yarn-ResourceManager
      • Hive
      • Hbase
      • Kafka
      • DolphinScheduler
      • Redis
      • Doris
      • Celeborn
      • Ozone
      • Ranger
  • Kerberos 旧版专题

    • 实战 Kerberos
    • 自建 Kerberos
      • KDC服务初始化安装
        • KDC服务初始化安装(RHEL篇)
        • KDC服务初始化安装(Ubuntu篇)
      • 开启Kerberos认证
        • Ambari 中开启 Kerberos 认证流程详解
        • [不看会报错]-Atlas开启准备工作
        • [不看会报错]-Zeppelin开启准备工作
        • [不看会报错]-Impala开启准备工作
        • [不看会报错]-Trino开启准备工作
      • 关闭Kerberos认证
        • Ambari 中关闭 Kerberos 认证流程详解
    • FreeIPA 认证
      • FreeIPA服务端初始化
        • FreeIPA Server 安装指导
      • FreeIPA客户端初始化及Ambari开启IPA认证
        • [Step1]-FreeIPA Client 安装与入域实战
        • [Step2]-FreeIPA 初始化核心用户
        • [Step3]-Ambari 中开启 Kerberos 认证流程详解
        • [Step3-1]-krb5-conf template调整
      • 部分踩坑-问题发现
        • Ambari Server 启动失败:no valid keystore
        • FreeIPA Client 导致 Ambari 权限异常问题排查
      • 部分踩坑-完美解决
        • Ambari Server 启动失败:no valid keystore
      • 辅助测试
        • FreeIPA Client 调试安装速记
        • Ambari Server 证书调试安装速记
    • 其他优化技巧
      • Atlas-Ranger-StringUtils缺失
      • Atlas-Ranger-commons-compress缺失
    • 部分组件踩坑合集
      • Test Kerberos Client报错:Failed to kinit
      • KERBEROS SERVICE CHECK 报错
      • Ambari开启Kerberos认证加密类型错误
      • [开启Kerberos]-Solr启动失败处理
      • [开启Kerberos]-Kafka启动失败处理
      • [开启Kerberos]-Atlas启动-Hbase权限异常
      • [开启Kerberos]-Atlas启动-Solr权限异常
      • [开启Kerberos]-Atlas启动-Kafka权限异常
      • [开启Kerberos]-Hive服务检查异常处理
      • [开启Kerberos]-Trino启动-配置文件处理
      • [开启Kerberos]-Trino启动-缺失PEM证书处理
      • [开启Kerberos]-Trino启动-连接Hive失败
      • [关闭 Kerberos]-Kafka 注销异常
      • [关闭 Kerberos]-Hive 注销异常
      • Kerberos 客户端模板渲染异常处理(临时处理)
      • Kafka 启动兼容 Kerberos 源码级修改
      • Kerberos 客户端模板渲染异常处理(源码修改)
    • 实战技巧
      • Knox 接入 Trino web-ui 解决方案
      • [开启Kerberos]-Trino启动-配置模板
      • [Knox适配]-Trino-474-转发规则魔改
    • 其他技巧
      • Ambari Security 开启步骤
  • Ranger 旧版专题

    • 实战 Ranger
    • Ranger HA 旧发行版
      • 环境准备
        • [Step1] Haproxy 规划与环境安装
      • Kerberos准备
        • [Step2] 统一访问域名的 Kerberos 票据生成
        • [Step3] 调整 Kerberos Client 配置
      • 安装指导
        • [Step4] Ambari页面开启 Ranger Admin 高可用
        • [Step5] 对齐 Ranger HA 的凭证处理
    • Ranger HA ttr-release
      • [Step2] Ranger Admin HA 自动化安装
    • FreeIPA 与 LDAP
      • [Step1] Ambari 安装 Ranger 并配置 FreeIPA + LDAP
      • [Step2] 制作 Ranger Usersync 证书并应用组件
      • [Step3] 制作 Ranger Admin 证书并应用组件
      • [Step4]Ranger HDFS Repository 创建失败修复
      • [Step5]Ranger HBase Repository 创建失败修复
    • 踩坑汇总
      • 调用 Ranger API 返回 403 问题
      • Ranger Admin LDAP 认证报 Bad credentials 分析
    • 解决方案
      • Ranger Admin LDAP 认证报 Bad credentials 处理
      • Ranger HA 虚拟域名 Principal 缺失修复
      • Ranger Usersync 证书快速导入脚本(LDAPS)
      • Ranger Admin 证书快速导入脚本
      • Ranger HDFS Repository 快速处理
      • Ranger HBase / Yarn Repository 快速处理
  • 开发环境

    • Ambari-Env
      • 环境准备
      • 开始使用
    • 工具与镜像
      • Maven镜像加速
      • Gradle镜像加速
      • Node.js 多版本共存方案
      • Npm镜像加速
      • Bower镜像加速
      • R环境安装+一键安装脚本
      • PostgreSQL 快速安装
  • Ambari 编译

    • Ambari 源码编译
    • 前端开发
    • 后端开发
    • Ambari Web本地启动
  • Bigtop 编译

    • 官方组件编译
    • 扩展组件编译
    • 工具与镜像
      • Ivy配置私有镜像仓库
      • APT仓库增量更新
      • Temurin JDK 23快速安装
  • Ambari 深度专题

    • Ambari Server 原理
    • Ambari Metrics 解读
  • Bigtop 方法论

    • Bigtop 深度专题
  • 自定义集成

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 各组件代码
    • 通用代码模板
  • 报错解决

    • Ambari 报错
      • Ambari Views
        • MDEP-187 从根因到修复
        • Loading node labels问题解决
      • Ambari
        • phantomjs下载失败问题
        • 编译问题:GCC 安装与配置
        • bower CERT_HAS_EXPIRED 错误问题
        • Ambari-admin包出现bower install错误
        • Cannot run program "rpmbuild"
        • Python: No such file or directory
        • Yarn解压报错EOFException排查与解决
        • Rpm-maven-plugin与shebang兼容性报错
        • Rpm-maven-plugin 最佳实践
        • Bower install拉取失败解决
        • 缺少 python3 报错解决
        • Python(>=2.6) but is not installed
        • SSL_ERROR_SYSCALL 的修复方法
      • Ambari-infra
        • org.apache.commons.io does not exist
        • maven-compiler-plugin:3.3:compile
        • java.security.InvalidAlgorithmParameterException
        • ambari-infra-solr-plugin依赖报错解决方案
      • Ambari-metrics
        • psutil 缺失与 archive_util 导入错误
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
    • Bigtop 报错
      • Hadoop
        • /usr/bin/env: python3: No such file or directory 问题
        • error [email protected]: The engine "node" is incompatible with this module 错误
        • CMake 3.1 or higher is required. You are running version 2.8.12.2 错误
        • fuse is needed by hadoop_3_2_0-3.3.4-1.el7.x86_64 错误
        • Cyrus SASL/GSASL 缺失解决
        • Protobuf PROTOC LIBRARY NOTFOUND
        • EVP CIPHER CTX block size 报错
        • TIRPC_INCLUDE_DIRS NOTFOUND解决
        • 缺失 redhat-rpm-config 报错
      • Spark
        • evaluate,httr2,knitr 包不存在解决办法
        • Pandoc 缺失导致 SparkR 构建失败
      • Trino
        • Trino requires Temurin or Oracle JDK for development
        • GLIBC 与 GLIBCXX 版本过低
      • Hudi
        • javax.annotation.Nullable 缺失
        • 缺失 everit-json-schema 依赖
      • Paimon
        • 缺失 Jindo 依赖
      • Livy
        • apache-incubator-disclaimer-resource-bundle 缺失
      • Flink
        • .git can't be found during `prepare`
        • Angular CLI requires Node >=14.15
        • npm run ci-check 报错退出码 3
        • TypeScript 类型声明错误
      • Atlas
        • Atlas 集成 JanusGraph 启动时报 Solr6Index 实例化失败解决
      • Superset
        • urllib3 v2 only supports OpenSSL 1.1.1+
      • Jsvc
        • jsvc 依赖缺失导致 rpm 构建失败
      • Zookeeper
        • ZooKeeper 构建(缺少 hostname 命令)
        • cppunit-devel 依赖缺失解决方案
      • Hive
        • org.apache.logging.slf4j.Log4j.Marker is not public 解决方案
      • Sqoop
        • xmlto is needed by 解决方法
        • lsb_release、rsync 缺失导致构建中断
        • asciidoc 警告与 relnotes.py 语法不兼容分析
      • Cloudbeaver
        • SelectExpressionItem cannot be resolved 报错分析
      • Bigtop-select
        • bigtop-select 打包缺 compat 报错修复
        • bigtop-select 打包缺 control 文件报错修复
      • Knox
        • xmlsectool 依赖缺失问题解析
        • webhdfs-test 依赖收敛冲突问题处理
        • Invalid keystore format 问题处理
        • Knox is not allowed to impersonate admin
        • X-Forwarded-For 406 错误的原因与处理
      • Hue
        • Hue 访问 Hadoop 权限问题
        • Hue 访问 Yarn 权限问题
        • Hue 访问 Impala 时间格式问题
        • requests-kerberos 兼容性问题
        • libmariadb.so.3 缺失导致 syncdb 失败
        • 生产环境下解决方案——Hue/query_api.py
  • 系统适配

    • Kylin V10系列
      • 通用部分
        • not set for current OS
          • 解读-不支持操作系统解读
          • 解决-增加系统支持范围(一)
          • 解决-增加系统支持范围(二)
          • 解决-增加系统支持范围(三)
          • 解决-增加系统支持范围(四)
        • 解决-TLS1.3导致依赖下载失败终极办法
    • Rocky系列
      • 案例-Ambari重启失败
        • 解读-Ambari3.0.0重启失败问题
        • 解决-追加日志锚点
        • 解决-进一步分析与改造[一]
        • 解决-进一步分析与改造[二]
      • 案例-数据库连接问题
        • 解读-安装完毕后出现Unable to load version data from server
      • 案例-日志级别控制问题
        • 解读-Ambari3.0.0无法调整日志输出级别
        • 解决-临时处理日志级别不生效
        • 解决-源码级处理日志不生效
      • 案例-找不到snappy-devel
        • 解决-HDFS报snappy-devel包缺失现象
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Ubuntu系列
      • 案例-首次编译环境处理
        • 解决-dpkg-buildpackage依赖缺失
        • 解决-devscripts依赖缺失
        • 首次编译-环境初始化
      • 案例-Bigtop适配Debian
        • 解读-bigtop-select支持deb
        • 解决-Step1-解除限制拥抱deb
        • 解决-Step2-补全代码结构
      • 案例-安装中遇到的问题
        • 解读-APT私有镜像验证失败剖析
        • 解决-快速处理APT私有镜像验证失败问题
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Centos系列
    • OpenEuler系列
  • 监控与调优

    • Ambari-Metrics插件
    • Infinity插件
      • 准备工作
        • Ambari-Metrics插件失效原因
        • Infinity 插件选择与安装小技巧
        • Grafana9.3.2+Infinity2.3.1
          • Grafana快速安装Infinity插件
        • Grafana11.5.2+Infinity3.4.1
          • Grafana快速安装Infinity插件
      • 创建最简DEMO
        • Grafana9.3.2+Infinity2.3.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
        • Grafana11.5.2+Infinity3.4.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
    • 组件配置调优
      • HDFS
        • [0001]访问 HDFS Web UI Logs Unauthorized 失败
        • [0001]>>>>>>Hadoop管理员配置优化
      • RANGER
        • [0002]Ranger 审计日志时间与系统时间不一致调整
        • [0002]>>>>>日期统一规则调优
        • [0001]Resource lookup fail 线程池超时优化
        • [0001]>>>>>>线程池与超时参数调优
    • 组件调优指南
    • 1v1指导调优
  • BUG临时处理

    • 版本-v2.2.2-以前
      • [22213]Ambari 3.0.0 滚动重启只执行一台主机修复
      • [22213]解决办法
      • [22212]Ambari 3.0.0 左侧服务菜单滚动条缺失修复
      • [22212]解决办法
      • [22211]Atlas 缺失 __AtlasUserProfile
      • [22211]解决办法
      • [22210]Atlas Hook 无权限访问 Kafka Topic
      • [22210]解决办法
      • [22209]Ranger Kafka Lookup 缺少 JAAS 配置
      • [22209]解决办法
      • [22208]Atlas Hook 消费 Kafka 报错
      • [22208]解决办法
      • [22207]Hue 内访问 SparkSql 失败
      • [22207]解决办法
      • [22206]Ranger 调用 Knox Topologies 失败
      • [22206]解决办法
      • [22205]Ranger Admin 轮刷ZK 缺失 JAAS
      • [22205]解决办法
      • [22204]KNOX policymgr-ssl 启动告警
      • [22204]解决办法
      • [22203]Hue 服务启动后秒退
      • [22203]解决办法
      • [22202]Hue 启动失败: hadoop 用户不存在
      • [22202]解决办法
      • [22201]Hive 使用 Tez 引擎插入数据失败
      • [22201]解决办法
    • 版本-v2.1.0-以前
      • Sqlline 启动卡死问题处理
  • 实验室

    • VIEW插件
      • CAPACITY-SCHEDULER-VIEW
        • Ambari CAPACITY-SCHEDULER 插件安装详解
      • FILE-VIEW
        • Ambari FILE-VIEW 插件安装详解
    • JIRA速查
    • 虚拟环境思路
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 产品中心

    • 当前版本
    • 版本矩阵与下载
  • 安装与使用

    • Ambari Plus 安装
      • 安装前准备
        • 实施总览
        • Step0—源码包下载与目录准备
        • Step1—系统源与基础工具准备
        • Step2—集群免密登录
        • Step3—主机名解析同步
        • Step4—Chrony 时间同步
        • Step5—Nginx 本地 Yum 文件服务
        • Step6—JDK 双环境准备
        • Step7—MySQL 驱动与本地仓库
        • Step8—MariaDB 初始化
        • Step9—AmbariServer 初始化
        • 必须 ambari plus 数据库初始化文件
      • 安装部署
        • 初始化集群
    • 组件安装
      • 组件安装总览
      • Solr 安装
      • Ranger 安装
      • Knox 安装
      • HDFS 安装
      • YARN 安装
      • MapReduce2 安装
      • Tez 安装
      • Hive 安装
      • Sqoop 安装
      • HBase 安装
      • Kafka 安装
      • Flink 安装
      • Spark 安装
      • Hue 安装
      • Livy 安装
      • Zeppelin 安装
      • DolphinScheduler 安装
      • Doris 安装
      • Celeborn 安装
      • Ozone 安装
      • Impala 安装
      • Trino 安装
      • Paimon 安装
      • Hudi 安装
      • Atlas 安装
      • Superset 安装
      • Alluxio 安装
    • 开启高可用
      • 开启高可用总览
      • HDFS 开启 HA
      • YARN 开启 HA
    • 权限与审计
      • 权限与审计总览
      • Kerberos 认证启用
      • LDAP 目录接入
    • Ambari Plus Monitor
      • IoTDB 安装与部署
      • 必须 ambari plus monitor 数据库初始化文件
      • Monitor 安装
      • 监控与告警使用
    • 常见问题
      • 安装使用常见问题
  • 发布与支持

    • 更新日志
    • 服务说明
    • 优惠政策
    • 合作共建
    • 蓝图愿景
    • 历史版本
      • 更新日志 · v2.2.3
      • 更新日志 · v2.2.2
      • 更新日志 · v2.2.1
      • 更新日志 · v2.2.0
      • 更新日志 · v2.1.0
      • 更新日志 · v2.0.0
      • 更新日志 · v1.0.7
      • 更新日志 · v1.0.6
      • 更新日志 · v1.0.5
      • 更新日志 · v1.0.4
      • 更新日志 · v1.0.3
      • 更新日志 · v1.0.2
      • 更新日志 · v1.0.1
      • 更新日志 · v1.0.0
  • 会员与访问

    • 专属内容解锁
  • Ambari 安装

    • 常规安装
      • 适用于Ambari3.0.0-kylin V10-aarch64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK-Bisheng
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-kylin V10-x86_64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK17与JDK1.8
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-ubuntu22.04
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地apt源
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el7
        • Step0—源码包下载
        • Step3—安装JDK17(Ambari 3.0专用)
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el8
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari2.8.0-el7
        • Step1—基础环境准备
        • Step2—免密登陆认证
        • Step3—安装JDK
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web Ui 初始化安装
    • 一键部署
      • Ambari快速部署—3.0.0
        • 【Kylin V10 aarch64】强力卸载脚本
        • 【Kylin V10 aarch64】自动安装脚本
        • 【Kylin V10 x86_64】强力卸载脚本
        • 【Kylin V10 x86_64】自动安装脚本
        • 【Ubuntu22】强力卸载脚本
        • 【Ubuntu22】自动安装脚本
        • 【Rocky8.10】强力卸载脚本
        • 【Rocky8.10】自动安装脚本
        • 【Centos7.9】自动安装脚本
      • Ambari快速部署—2.8.0
        • 【Centos7.9】自动安装脚本
        • 【Centos7.9】强力卸载脚本
      • 数据库环境
        • PostgreSQL 快速安装脚本
      • JDK环境
        • 安装JDK1.8
        • 安装JDK 17
        • 安装JDK1.8-aarch64
        • 安装JDK 17-aarch64
      • MAVEN环境
        • 安装Maven3.8.4
        • 安装Maven3.9.9
      • GRADLE环境
        • 安装Gradle5.6.4
      • CONDA环境
        • 安装Miniconda2
        • 编译Ambari2.8.0——Miniconda3
      • R环境
        • 【Kylin V10 x86_64】安装R 4.4.2
        • 【Ubuntu22】安装R 4.4.2
        • 【Rocky8.10】安装R 4.4.2
        • 【CentOS7】安装R 4.4.2
  • 组件安装

    • 安装指导
    • 魔改分享
      • Phoenix-JDK17下编译的二进制包适用于Datagrip
        • Q: 高版本 DataGrip 无法使用 Phoenix 驱动
        • A: Phoenix - JDK17 制作&下载
    • 最小化安装(简单)
      • Zookeeper 安装
      • Hadoop 安装
      • Yarn安装
      • Hive 安装
      • Spark 安装
      • HBase 安装
      • Kafka 安装
      • Sqoop 安装
      • Flink 安装
      • DolphinScheduler 安装
      • Zeppelin 安装
      • Redis 安装
      • Doris安装
      • Celeborn安装
      • Ozone安装
      • Impala安装
      • Cloudbeaver 安装
      • Ambari Metrics安装
      • Solr安装
      • Ranger 安装
      • Trino安装
      • Paimon安装
      • Hudi安装
      • Atlas 安装
      • Superset 安装
      • Livy 安装
      • Alluxio 安装
      • Hue 安装
      • Knox 安装
    • 进阶安装技巧(需开启Kerberos)
      • Ambari Metrics 进阶安装技巧
      • Atlas 进阶安装技巧
    • 高可用安装(有难度)
      • Zookeeper
      • Hadoop-Namenode
      • Yarn-ResourceManager
      • Hive
      • Hbase
      • Kafka
      • DolphinScheduler
      • Redis
      • Doris
      • Celeborn
      • Ozone
      • Ranger
  • Kerberos 旧版专题

    • 实战 Kerberos
    • 自建 Kerberos
      • KDC服务初始化安装
        • KDC服务初始化安装(RHEL篇)
        • KDC服务初始化安装(Ubuntu篇)
      • 开启Kerberos认证
        • Ambari 中开启 Kerberos 认证流程详解
        • [不看会报错]-Atlas开启准备工作
        • [不看会报错]-Zeppelin开启准备工作
        • [不看会报错]-Impala开启准备工作
        • [不看会报错]-Trino开启准备工作
      • 关闭Kerberos认证
        • Ambari 中关闭 Kerberos 认证流程详解
    • FreeIPA 认证
      • FreeIPA服务端初始化
        • FreeIPA Server 安装指导
      • FreeIPA客户端初始化及Ambari开启IPA认证
        • [Step1]-FreeIPA Client 安装与入域实战
        • [Step2]-FreeIPA 初始化核心用户
        • [Step3]-Ambari 中开启 Kerberos 认证流程详解
        • [Step3-1]-krb5-conf template调整
      • 部分踩坑-问题发现
        • Ambari Server 启动失败:no valid keystore
        • FreeIPA Client 导致 Ambari 权限异常问题排查
      • 部分踩坑-完美解决
        • Ambari Server 启动失败:no valid keystore
      • 辅助测试
        • FreeIPA Client 调试安装速记
        • Ambari Server 证书调试安装速记
    • 其他优化技巧
      • Atlas-Ranger-StringUtils缺失
      • Atlas-Ranger-commons-compress缺失
    • 部分组件踩坑合集
      • Test Kerberos Client报错:Failed to kinit
      • KERBEROS SERVICE CHECK 报错
      • Ambari开启Kerberos认证加密类型错误
      • [开启Kerberos]-Solr启动失败处理
      • [开启Kerberos]-Kafka启动失败处理
      • [开启Kerberos]-Atlas启动-Hbase权限异常
      • [开启Kerberos]-Atlas启动-Solr权限异常
      • [开启Kerberos]-Atlas启动-Kafka权限异常
      • [开启Kerberos]-Hive服务检查异常处理
      • [开启Kerberos]-Trino启动-配置文件处理
      • [开启Kerberos]-Trino启动-缺失PEM证书处理
      • [开启Kerberos]-Trino启动-连接Hive失败
      • [关闭 Kerberos]-Kafka 注销异常
      • [关闭 Kerberos]-Hive 注销异常
      • Kerberos 客户端模板渲染异常处理(临时处理)
      • Kafka 启动兼容 Kerberos 源码级修改
      • Kerberos 客户端模板渲染异常处理(源码修改)
    • 实战技巧
      • Knox 接入 Trino web-ui 解决方案
      • [开启Kerberos]-Trino启动-配置模板
      • [Knox适配]-Trino-474-转发规则魔改
    • 其他技巧
      • Ambari Security 开启步骤
  • Ranger 旧版专题

    • 实战 Ranger
    • Ranger HA 旧发行版
      • 环境准备
        • [Step1] Haproxy 规划与环境安装
      • Kerberos准备
        • [Step2] 统一访问域名的 Kerberos 票据生成
        • [Step3] 调整 Kerberos Client 配置
      • 安装指导
        • [Step4] Ambari页面开启 Ranger Admin 高可用
        • [Step5] 对齐 Ranger HA 的凭证处理
    • Ranger HA ttr-release
      • [Step2] Ranger Admin HA 自动化安装
    • FreeIPA 与 LDAP
      • [Step1] Ambari 安装 Ranger 并配置 FreeIPA + LDAP
      • [Step2] 制作 Ranger Usersync 证书并应用组件
      • [Step3] 制作 Ranger Admin 证书并应用组件
      • [Step4]Ranger HDFS Repository 创建失败修复
      • [Step5]Ranger HBase Repository 创建失败修复
    • 踩坑汇总
      • 调用 Ranger API 返回 403 问题
      • Ranger Admin LDAP 认证报 Bad credentials 分析
    • 解决方案
      • Ranger Admin LDAP 认证报 Bad credentials 处理
      • Ranger HA 虚拟域名 Principal 缺失修复
      • Ranger Usersync 证书快速导入脚本(LDAPS)
      • Ranger Admin 证书快速导入脚本
      • Ranger HDFS Repository 快速处理
      • Ranger HBase / Yarn Repository 快速处理
  • 开发环境

    • Ambari-Env
      • 环境准备
      • 开始使用
    • 工具与镜像
      • Maven镜像加速
      • Gradle镜像加速
      • Node.js 多版本共存方案
      • Npm镜像加速
      • Bower镜像加速
      • R环境安装+一键安装脚本
      • PostgreSQL 快速安装
  • Ambari 编译

    • Ambari 源码编译
    • 前端开发
    • 后端开发
    • Ambari Web本地启动
  • Bigtop 编译

    • 官方组件编译
    • 扩展组件编译
    • 工具与镜像
      • Ivy配置私有镜像仓库
      • APT仓库增量更新
      • Temurin JDK 23快速安装
  • Ambari 深度专题

    • Ambari Server 原理
    • Ambari Metrics 解读
  • Bigtop 方法论

    • Bigtop 深度专题
  • 自定义集成

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 各组件代码
    • 通用代码模板
  • 报错解决

    • Ambari 报错
      • Ambari Views
        • MDEP-187 从根因到修复
        • Loading node labels问题解决
      • Ambari
        • phantomjs下载失败问题
        • 编译问题:GCC 安装与配置
        • bower CERT_HAS_EXPIRED 错误问题
        • Ambari-admin包出现bower install错误
        • Cannot run program "rpmbuild"
        • Python: No such file or directory
        • Yarn解压报错EOFException排查与解决
        • Rpm-maven-plugin与shebang兼容性报错
        • Rpm-maven-plugin 最佳实践
        • Bower install拉取失败解决
        • 缺少 python3 报错解决
        • Python(>=2.6) but is not installed
        • SSL_ERROR_SYSCALL 的修复方法
      • Ambari-infra
        • org.apache.commons.io does not exist
        • maven-compiler-plugin:3.3:compile
        • java.security.InvalidAlgorithmParameterException
        • ambari-infra-solr-plugin依赖报错解决方案
      • Ambari-metrics
        • psutil 缺失与 archive_util 导入错误
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
    • Bigtop 报错
      • Hadoop
        • /usr/bin/env: python3: No such file or directory 问题
        • error [email protected]: The engine "node" is incompatible with this module 错误
        • CMake 3.1 or higher is required. You are running version 2.8.12.2 错误
        • fuse is needed by hadoop_3_2_0-3.3.4-1.el7.x86_64 错误
        • Cyrus SASL/GSASL 缺失解决
        • Protobuf PROTOC LIBRARY NOTFOUND
        • EVP CIPHER CTX block size 报错
        • TIRPC_INCLUDE_DIRS NOTFOUND解决
        • 缺失 redhat-rpm-config 报错
      • Spark
        • evaluate,httr2,knitr 包不存在解决办法
        • Pandoc 缺失导致 SparkR 构建失败
      • Trino
        • Trino requires Temurin or Oracle JDK for development
        • GLIBC 与 GLIBCXX 版本过低
      • Hudi
        • javax.annotation.Nullable 缺失
        • 缺失 everit-json-schema 依赖
      • Paimon
        • 缺失 Jindo 依赖
      • Livy
        • apache-incubator-disclaimer-resource-bundle 缺失
      • Flink
        • .git can't be found during `prepare`
        • Angular CLI requires Node >=14.15
        • npm run ci-check 报错退出码 3
        • TypeScript 类型声明错误
      • Atlas
        • Atlas 集成 JanusGraph 启动时报 Solr6Index 实例化失败解决
      • Superset
        • urllib3 v2 only supports OpenSSL 1.1.1+
      • Jsvc
        • jsvc 依赖缺失导致 rpm 构建失败
      • Zookeeper
        • ZooKeeper 构建(缺少 hostname 命令)
        • cppunit-devel 依赖缺失解决方案
      • Hive
        • org.apache.logging.slf4j.Log4j.Marker is not public 解决方案
      • Sqoop
        • xmlto is needed by 解决方法
        • lsb_release、rsync 缺失导致构建中断
        • asciidoc 警告与 relnotes.py 语法不兼容分析
      • Cloudbeaver
        • SelectExpressionItem cannot be resolved 报错分析
      • Bigtop-select
        • bigtop-select 打包缺 compat 报错修复
        • bigtop-select 打包缺 control 文件报错修复
      • Knox
        • xmlsectool 依赖缺失问题解析
        • webhdfs-test 依赖收敛冲突问题处理
        • Invalid keystore format 问题处理
        • Knox is not allowed to impersonate admin
        • X-Forwarded-For 406 错误的原因与处理
      • Hue
        • Hue 访问 Hadoop 权限问题
        • Hue 访问 Yarn 权限问题
        • Hue 访问 Impala 时间格式问题
        • requests-kerberos 兼容性问题
        • libmariadb.so.3 缺失导致 syncdb 失败
        • 生产环境下解决方案——Hue/query_api.py
  • 系统适配

    • Kylin V10系列
      • 通用部分
        • not set for current OS
          • 解读-不支持操作系统解读
          • 解决-增加系统支持范围(一)
          • 解决-增加系统支持范围(二)
          • 解决-增加系统支持范围(三)
          • 解决-增加系统支持范围(四)
        • 解决-TLS1.3导致依赖下载失败终极办法
    • Rocky系列
      • 案例-Ambari重启失败
        • 解读-Ambari3.0.0重启失败问题
        • 解决-追加日志锚点
        • 解决-进一步分析与改造[一]
        • 解决-进一步分析与改造[二]
      • 案例-数据库连接问题
        • 解读-安装完毕后出现Unable to load version data from server
      • 案例-日志级别控制问题
        • 解读-Ambari3.0.0无法调整日志输出级别
        • 解决-临时处理日志级别不生效
        • 解决-源码级处理日志不生效
      • 案例-找不到snappy-devel
        • 解决-HDFS报snappy-devel包缺失现象
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Ubuntu系列
      • 案例-首次编译环境处理
        • 解决-dpkg-buildpackage依赖缺失
        • 解决-devscripts依赖缺失
        • 首次编译-环境初始化
      • 案例-Bigtop适配Debian
        • 解读-bigtop-select支持deb
        • 解决-Step1-解除限制拥抱deb
        • 解决-Step2-补全代码结构
      • 案例-安装中遇到的问题
        • 解读-APT私有镜像验证失败剖析
        • 解决-快速处理APT私有镜像验证失败问题
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Centos系列
    • OpenEuler系列
  • 监控与调优

    • Ambari-Metrics插件
    • Infinity插件
      • 准备工作
        • Ambari-Metrics插件失效原因
        • Infinity 插件选择与安装小技巧
        • Grafana9.3.2+Infinity2.3.1
          • Grafana快速安装Infinity插件
        • Grafana11.5.2+Infinity3.4.1
          • Grafana快速安装Infinity插件
      • 创建最简DEMO
        • Grafana9.3.2+Infinity2.3.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
        • Grafana11.5.2+Infinity3.4.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
    • 组件配置调优
      • HDFS
        • [0001]访问 HDFS Web UI Logs Unauthorized 失败
        • [0001]>>>>>>Hadoop管理员配置优化
      • RANGER
        • [0002]Ranger 审计日志时间与系统时间不一致调整
        • [0002]>>>>>日期统一规则调优
        • [0001]Resource lookup fail 线程池超时优化
        • [0001]>>>>>>线程池与超时参数调优
    • 组件调优指南
    • 1v1指导调优
  • BUG临时处理

    • 版本-v2.2.2-以前
      • [22213]Ambari 3.0.0 滚动重启只执行一台主机修复
      • [22213]解决办法
      • [22212]Ambari 3.0.0 左侧服务菜单滚动条缺失修复
      • [22212]解决办法
      • [22211]Atlas 缺失 __AtlasUserProfile
      • [22211]解决办法
      • [22210]Atlas Hook 无权限访问 Kafka Topic
      • [22210]解决办法
      • [22209]Ranger Kafka Lookup 缺少 JAAS 配置
      • [22209]解决办法
      • [22208]Atlas Hook 消费 Kafka 报错
      • [22208]解决办法
      • [22207]Hue 内访问 SparkSql 失败
      • [22207]解决办法
      • [22206]Ranger 调用 Knox Topologies 失败
      • [22206]解决办法
      • [22205]Ranger Admin 轮刷ZK 缺失 JAAS
      • [22205]解决办法
      • [22204]KNOX policymgr-ssl 启动告警
      • [22204]解决办法
      • [22203]Hue 服务启动后秒退
      • [22203]解决办法
      • [22202]Hue 启动失败: hadoop 用户不存在
      • [22202]解决办法
      • [22201]Hive 使用 Tez 引擎插入数据失败
      • [22201]解决办法
    • 版本-v2.1.0-以前
      • Sqlline 启动卡死问题处理
  • 实验室

    • VIEW插件
      • CAPACITY-SCHEDULER-VIEW
        • Ambari CAPACITY-SCHEDULER 插件安装详解
      • FILE-VIEW
        • Ambari FILE-VIEW 插件安装详解
    • JIRA速查
    • 虚拟环境思路
GitHub (opens new window)
  • Ambari 安装

    • 常规安装
    • 一键部署
      • Ambari快速部署—3.0.0

        • 【Kylin V10 aarch64】强力卸载脚本
          • 一、支持范围
          • 二、卸载脚本完整内容
          • 三、hosts.txt 格式说明
          • 四、使用方法
            • 1、准备 hosts.txt
            • 2、执行卸载脚本
            • 3、核查结果(建议逐台)
          • 五、Kylin V10 差异项说明
            • 一、包管理差异
            • 二、服务管理
            • 三、数据与账号回收
          • 六、图示参考
        • 【Kylin V10 aarch64】自动安装脚本
        • 【Kylin V10 x86_64】强力卸载脚本
        • 【Kylin V10 x86_64】自动安装脚本
        • 【Ubuntu22】强力卸载脚本
        • 【Ubuntu22】自动安装脚本
        • 【Rocky8.10】强力卸载脚本
        • 【Rocky8.10】自动安装脚本
        • 【Centos7.9】自动安装脚本
      • Ambari快速部署—2.8.0

      • 数据库环境

      • JDK环境

      • MAVEN环境

      • GRADLE环境

      • CONDA环境

      • R环境

  • 组件安装

  • Kerberos 旧版专题

  • Ranger 旧版专题

  • 旧版部署
  • Ambari 安装
  • 一键部署
  • Ambari快速部署—3.0.0
JaneTTR
2026-03-22
目录

【Kylin V10 aarch64】强力卸载脚本aarch64

场景说明

本指南专为 Kylin V10(SP3·Halberd,aarch64) 设计,支持一键安全批量卸载 Ambari/Bigtop 及其依赖。适合 环境重置、集群重装、测试回收。脚本支持多节点并发,卸载后确保系统无历史残留。

# 一、支持范围

类别 说明
操作系统 Kylin V10(SP3·Halberd),兼容 aarch64
包管理器 yum/dnf 自动识别(脚本已做容错),不依赖 APT
卸载内容 Ambari Server/Agent、MariaDB/MySQL、JDK、MySQL Connector、
Nginx、本地 YUM 源、常见大数据组件残留(HDFS/HBase/Hive/Kafka/YARN/Tez/ZooKeeper/Ozone/Spark/Flink…)
适用场景 建议与本站 ONEKEY 安装方案配套,复用原始 hosts.txt,
支持多节点集群卸载、环境回滚、二次安装前清场与验收测试

# 二、卸载脚本完整内容 必读

注意

下方为 Kylin V10 专用 一键卸载脚本。复制前请确认 hosts.txt(用户名 密码 IP)配置无误;脚本会并发批处理, 对生产环境务必谨慎。已适配 yum/dnf、公钥、sudo 与 systemd 差异。

#!/bin/bash
# SPDX-License-Identifier: LicenseRef-JaneTTR-Proprietary
# 版权所有 (c) 2025 JaneTTR
# 项目名称:ambari-env
# 文件:install_ambari_cluster.sh
# 版本:1.0.0
# 联系方式:[email protected]
#
# 许可说明(付费/专有代码):
# - 本文件仅限个人学习与研究使用;
# - 未经版权所有者书面授权,禁止任何商业用途;
# - 禁止再分发本文件或其修改版本;
# - 禁止通过反编译、反向工程等方式试图绕过授权验证。
#
# 商业授权:
# 如需将本文件或其编译后的代码用于商业用途,必须获得版权所有者的书面授权。
# 请通过上述联系方式进行洽谈。
#
# 免责声明:
# 本文件按“现状”提供,不附带任何形式的担保,包括但不限于适销性、
# 特定用途适用性或无侵权的担保。因使用本文件造成的任何直接或间接损失,
# 版权所有者不承担任何责任。
#
# 如有任何疑问,请联系版权所有者。

set -euo pipefail

#=============================
#  统一配置:组件/路径/开关
#=============================

# 统一维护“组件关键字”(用于清理路径匹配、/run /tmp 清理等)
# 你以后加组件,就在这里加一个词即可(建议用小写)
COMPONENTS=(
  ambari bigtop
  hadoop hdfs yarn mapred hive hbase hcat tez kms
  zookeeper kafka ranger solr
  spark flink zeppelin
  atlas trino doris
  nightingale categraf
  ozone celeborn
  cloudbeaver
  hudi paimon phoenix dolphin
  ams ambari-qa knox hue alluxio impala livy superset
)

# 仅用于进程兜底匹配,避免使用过于宽泛的 java 关键字
PROCESS_KEYWORDS=(
  ambari ambari-server ambari-agent ambari-metrics
  bigtop hadoop hdfs yarn mapred hive hbase hcat tez kms
  zookeeper kafka ranger solr spark flink zeppelin
  atlas trino doris nightingale categraf ozone celeborn
  cloudbeaver hudi paimon phoenix dolphin ams knox hue
  alluxio impala livy superset n9e
)

# 统一维护“systemctl 服务名”(不带 .service)
SERVICE_UNITS=(
  ambari-server ambari-agent
  hadoop-hdfs-namenode hadoop-hdfs-datanode hadoop-yarn-resourcemanager hadoop-yarn-nodemanager
  zookeeper ranger-admin ranger-usersync
  kafka solr zeppelin spark flink ozone
  mariadb mysql
  nightingale categraf atlas hudi paimon trino knox hue superset alluxio
)

# 统一维护“需要删除的用户/组”(用户名=组名的场景)
# ⚠️ 你原来包含 hadoop,这里我保留(行为不变)。如果你想保护 hadoop,告诉我我给你加白名单/开关。
CLEANUP_USERS=(
  ambari-qa ams hbase hcat hdfs hive kafka kms mapred ranger solr sqoop tez yarn zookeeper
  zeppelin flink spark hadoop doris nightingale categraf ozone celeborn
)

# 仅清理这些根目录下“直接子项”为组件名前缀的路径,避免在 /usr /etc /var 中做模糊全盘扫描
SAFE_PREFIX_ROOTS=(/opt /etc /var/lib /var/log /var/cache /data /data1 /data2)

# 这些路径是卸载大数据组件时允许整段删除的已知目录
SAFE_LITERAL_PATHS=(
  /usr/bigtop
  /data/kafka-logs
  /data/hadoop
  /kafka-logs
  /hadoop
  /ozone
  /celeborn
)

# 开关:
# DRY_RUN=1 只打印不执行
# SKIP_DB=1 跳过数据库初始化
# DB_ROOT_PASSWORD=root 设置数据库 root 密码(默认 root)
# FORCE_KILL_PATTERNS=1 才启用按关键字兜底杀进程(默认关闭,避免误杀当前脚本相关进程)
# NUKE_TMP=1 全清 /tmp(高风险)
# CLEAN_OLD_TMP=1 才会按天数清理 /tmp 中的旧文件(默认关闭,避免误删无关临时文件)
# TMP_TTL_DAYS=2 /tmp 普通文件/目录清理的“保留天数”
TMP_TTL_DAYS="${TMP_TTL_DAYS:-2}"

#=============================
#  环境与日志
#=============================
LOGFILE="/tmp/ambari_cleanup_kylin.log"
exec > >(tee -a "$LOGFILE") 2>&1

TARGET="${TARGET:-localhost}"

log_info ()  { echo "$(date '+%F %T') [Info]  $*"; }
log_warn ()  { echo "$(date '+%F %T') [Warn]  $*"; }
log_error () { echo "$(date '+%F %T') [Error] $*" >&2; }

#=============================
#  小工具:把 COMPONENTS 生成 regex(posix-extended)
#=============================
# 输出形如:.*(a|b|c).* 的 regex(并对 '-' 做转义,避免正则歧义)
build_components_regex() {
  local joined=""
  local x
  for x in "${COMPONENTS[@]}"; do
    x="${x//-/\\-}"
    if [ -z "$joined" ]; then
      joined="$x"
    else
      joined="${joined}|$x"
    fi
  done
  echo ".*(${joined}).*"
}

run_cmd() {
  local DRY="${DRY_RUN:-0}"
  if [ "$DRY" = "1" ]; then
    echo "+ $*"
  else
    eval "$@"
  fi
}

cleanup_prefixed_children() {
  local root=$1
  local prefix

  [ -d "$root" ] || return 0

  for prefix in "${COMPONENTS[@]}" kafka-logs; do
    run_cmd "sudo find '$root' -mindepth 1 -maxdepth 1 \
      \\( -name '${prefix}' -o -name '${prefix}-*' -o -name '${prefix}_*' -o -name '${prefix}.*' -o -name '${prefix}[0-9]*' \\) \
      -exec rm -rf {} + 2>/dev/null || true"
  done
}

cleanup_runtime_entries() {
  local root=$1
  local prefix

  [ -d "$root" ] || return 0

  for prefix in "${COMPONENTS[@]}" kafka-logs; do
    run_cmd "sudo find '$root' -mindepth 1 -maxdepth 2 \
      \\( -name '${prefix}' -o -name '${prefix}-*' -o -name '${prefix}_*' -o -name '${prefix}.*' \
         -o -name '*${prefix}*.pid' -o -name '*${prefix}*.sock' -o -name '*${prefix}*.port' \\) \
      -exec rm -rf {} + 2>/dev/null || true"
  done
}

#=============================
#  OS 检测(要求 RedHat 家族)
#=============================
require_redhat_like() {
  if command -v rpm >/dev/null 2>&1 && [ -f /etc/os-release ]; then
    . /etc/os-release || true
    if echo "${ID_LIKE:-}${ID:-}" | grep -Ei 'rhel|redhat|centos|kylin|openeuler|rocky|almalinux' >/dev/null; then
      return 0
    fi
  fi
  log_error "检测到当前不是 RedHat 家族系统(本脚本适配 Kylin/RedHat 系)。"
  exit 1
}

#=============================
#  包管理工具选择
#=============================
PM=""
pm_detect() {
  if command -v dnf >/dev/null 2>&1; then
    PM="dnf"
  elif command -v yum >/dev/null 2>&1; then
    PM="yum"
  else
    log_error "未找到 dnf/yum,请确认是 Kylin/RedHat 系并安装包管理器。"
    exit 1
  fi
}
pm_install() { sudo "$PM" -y install "$@" --allowerasing || sudo "$PM" -y install "$@" || true; }
pm_remove()  { sudo "$PM" -y remove "$@" || true; }
pm_autoremove() { if [ "$PM" = "dnf" ]; then sudo dnf -y autoremove || true; fi; }
pm_makecache() { sudo "$PM" -y makecache || true; }
pm_update_metadata() {
  if [ "$PM" = "dnf" ]; then sudo dnf -y --refresh makecache || true; else sudo yum -y makecache fast || true; fi
}

#=============================
#  区域/语言(Kylin)
#=============================
ensure_locale_kylin() {
  pm_install glibc-langpack-zh glibc-langpack-en || true

  if command -v localectl >/dev/null 2>&1; then
    if ! sudo localectl set-locale LANG=zh_CN.UTF-8; then
      log_warn "[$TARGET] localectl 设置 LANG=zh_CN.UTF-8 失败,回退为直接写 /etc/locale.conf"
    fi
  fi

  if [ -w /etc/locale.conf ] || sudo test -w /etc/locale.conf; then
    printf '%s\n' 'LANG=zh_CN.UTF-8' | sudo tee /etc/locale.conf >/dev/null || true
  fi

  export LANG=zh_CN.UTF-8
  unset LC_ALL || true
}

#=============================
#  基础工具与 sshpass
#=============================
ensure_base_tools() {
  pm_update_metadata
  pm_install which coreutils findutils util-linux procps-ng psmisc lsof gawk grep sed tar gzip || true
}
ensure_sshpass() {
  if ! command -v sshpass >/dev/null 2>&1; then
    log_info "sshpass 未安装,开始安装…"
    pm_install sshpass
    if ! command -v sshpass >/dev/null 2>&1; then
      log_warn "仓库中找不到 sshpass,尝试启用可用的 Extra/Epol/PowerTools 仓库后再次安装…"
      sudo "$PM" config-manager --set-enabled epol 2>/dev/null || true
      sudo "$PM" config-manager --set-enabled powertools 2>/dev/null || true
      pm_makecache
      pm_install sshpass
    fi
  fi
}

#=============================
#  停服务 & 杀进程
#=============================
stop_services_and_kill() {
  log_info "[$TARGET] 停止服务与杀进程…"

  for svc in "${SERVICE_UNITS[@]}"; do
    if systemctl list-unit-files | awk '{print $1}' | grep -qx "${svc}.service"; then
      sudo systemctl stop "$svc" || true
      sudo systemctl disable "$svc" || true
    fi
  done

  if [ "${FORCE_KILL_PATTERNS:-0}" != "1" ]; then
    log_info "[$TARGET] 跳过按关键字兜底杀进程;如需启用请设置 FORCE_KILL_PATTERNS=1"
    return 0
  fi

  # 关键词兜底:默认关闭,仅在显式要求时启用
  local kill_keywords=("${PROCESS_KEYWORDS[@]}")
  local kw
  for kw in "${kill_keywords[@]}"; do
    mapfile -t kw_pids < <(ps -eo pid,cmd --no-headers | grep -F -- "$kw" | grep -v grep | awk '{print $1}')
    for pid in "${kw_pids[@]:-}"; do
      if [[ "$pid" =~ ^[0-9]+$ ]] && kill -0 "$pid" 2>/dev/null; then
        log_info "按关键词[$kw] 杀进程: $pid"
        kill -9 "$pid" || true
      fi
    done
  done
}

#=============================
#  卸载 Ambari/Bigtop 相关包(RPM)
#=============================
remove_ambari_bigtop_rpms() {
  log_info "[$TARGET] 卸载 ambari/bigtop 仓库相关 RPM 包…"

  mapfile -t rpms < <(
    rpm -qa 2>/dev/null \
      | awk 'BEGIN{IGNORECASE=1}
        {
          name=$0
          if (name ~ /(ambari|bigtop)/) { print $0; next }
          if (name ~ /3_2_0/) { print $0; next }
        }' \
      | sort -u \
      || true
  )

  if [ "${#rpms[@]}" -gt 0 ]; then
    log_info "[$TARGET] 将卸载以下 ambari/bigtop/3_2_0 相关包:${rpms[*]}"
    pm_remove "${rpms[@]}" || true
    pm_autoremove
  else
    log_info "[$TARGET] 未找到 ambari/bigtop/3_2_0 相关的已安装包"
  fi
}

#=============================
#  清理文件/目录/用户/DB/日志
#=============================
cleanup_files_users_db() {
  log_info "[$TARGET] 清理残留文件与目录…"
  local d
  for d in "${SAFE_PREFIX_ROOTS[@]}"; do
    cleanup_prefixed_children "$d"
  done

  for d in "${SAFE_LITERAL_PATHS[@]}"; do
    run_cmd "sudo rm -rf '$d' 2>/dev/null || true"
  done

  #=============================
  #  /run(/var/run) 清理:只删匹配组件关键字的残留 pid/socket/目录
  #=============================
  log_info "[$TARGET] 清理 /run(/var/run) 下的大数据残留 pid/socket…"
  local run_dirs=(/run /var/run)
  local rd
  for rd in "${run_dirs[@]}"; do
    cleanup_runtime_entries "$rd"
  done

  #=============================
  #  /tmp 清理:默认只清理组件相关临时文件
  #=============================
  log_info "[$TARGET] 清理 /tmp 下的大数据临时文件…"
  cleanup_runtime_entries /tmp

  if [ "${CLEAN_OLD_TMP:-0}" = "1" ]; then
    log_warn "[$TARGET] CLEAN_OLD_TMP=1:按保留天数清理 /tmp 中的旧文件"
    run_cmd "sudo find /tmp -mindepth 1 -maxdepth 2 -not -type s -mtime +${TMP_TTL_DAYS} -exec rm -rf {} + 2>/dev/null || true"
  fi

  if [ "${NUKE_TMP:-0}" = "1" ]; then
    log_warn "[$TARGET] NUKE_TMP=1:即将清空 /tmp(高风险)"
    run_cmd "sudo rm -rf /tmp/* /tmp/.[!.]* /tmp/..?* 2>/dev/null || true"
  fi

  log_info "[$TARGET] 清理大数据相关用户/组/家目录…"
  local u
  for u in "${CLEANUP_USERS[@]}"; do
    run_cmd "sudo pkill -u '$u' 2>/dev/null || true"
    run_cmd "sudo userdel -r '$u' 2>/dev/null || true"
    run_cmd "sudo groupdel '$u' 2>/dev/null || true"
    run_cmd "sudo rm -rf /home/'$u' 2>/dev/null || true"
  done

  log_info "[$TARGET] 清理常见日志路径下的组件残留…"
  cleanup_prefixed_children /var/log

  log_info "[$TARGET] 清理并重建数据库(如安装了 MariaDB/MySQL)…"

  if [ "${SKIP_DB:-0}" = "1" ]; then
    log_info "[$TARGET] 跳过数据库初始化(SKIP_DB=1)"
    return 0
  fi

  local svc="" flavor="" initcmd="" mariadb_init_bin="" mysql_server_bin="" db_client_bin=""
  local db_root_password="${DB_ROOT_PASSWORD:-root}"

  for mariadb_init_bin in \
    "$(command -v mariadb-install-db 2>/dev/null || true)" \
    /usr/bin/mariadb-install-db \
    /usr/libexec/mariadb-install-db \
    "$(command -v mysql_install_db 2>/dev/null || true)" \
    /usr/bin/mysql_install_db; do
    [ -n "$mariadb_init_bin" ] || continue
    [ -x "$mariadb_init_bin" ] || continue
    break
  done

  for mysql_server_bin in \
    "$(command -v mariadbd 2>/dev/null || true)" \
    /usr/sbin/mariadbd \
    /usr/libexec/mariadbd \
    "$(command -v mysqld 2>/dev/null || true)" \
    /usr/sbin/mysqld \
    /usr/libexec/mysqld; do
    [ -n "$mysql_server_bin" ] || continue
    [ -x "$mysql_server_bin" ] || continue
    break
  done

  for db_client_bin in \
    "$(command -v mariadb 2>/dev/null || true)" \
    /usr/bin/mariadb \
    "$(command -v mysql 2>/dev/null || true)" \
    /usr/bin/mysql; do
    [ -n "$db_client_bin" ] || continue
    [ -x "$db_client_bin" ] || continue
    break
  done

  if systemctl list-unit-files --type=service 2>/dev/null | grep -q '^mariadb\.service'; then
    svc="mariadb"; flavor="mariadb"
  elif systemctl list-unit-files --type=service 2>/dev/null | grep -q '^mysqld\.service'; then
    svc="mysqld"
    if [ -n "$mariadb_init_bin" ] \
      || rpm -qa 2>/dev/null | egrep -qi '^(MariaDB|mariadb)-server' \
      || { [ -n "$mysql_server_bin" ] && "$mysql_server_bin" --version 2>&1 | grep -qi 'mariadb'; }; then
      flavor="mariadb"
    else
      flavor="mysql"
    fi
  elif [ -n "$mariadb_init_bin" ]; then
    flavor="mariadb"; svc="${svc:-mariadb}"
  elif [ -n "$mysql_server_bin" ]; then
    if "$mysql_server_bin" --version 2>&1 | grep -qi 'mariadb'; then
      flavor="mariadb"; svc="${svc:-mariadb}"
    else
      flavor="mysql"; svc="${svc:-mysqld}"
    fi
  elif rpm -qa 2>/dev/null | egrep -qi '^(MariaDB|mariadb)-server'; then
    flavor="mariadb"; svc="${svc:-mariadb}"
  elif rpm -qa 2>/dev/null | egrep -qi '^mysql-community-server'; then
    flavor="mysql"; svc="${svc:-mysqld}"
  fi

  if [ -n "$mysql_server_bin" ]; then
    if "$mysql_server_bin" --version 2>&1 | grep -qi 'mariadb'; then
      flavor="mariadb"
      svc="${svc:-mariadb}"
    fi
  fi

  if [ -z "$flavor" ]; then
    log_info "[$TARGET] 未检测到 MariaDB/MySQL,跳过数据库初始化。"
    return 0
  fi

  if [ "$flavor" = "mariadb" ]; then
    if [ -z "$mariadb_init_bin" ] || [ ! -x "$mariadb_init_bin" ]; then
      log_warn "[$TARGET] 未找到可用的 MariaDB 初始化命令(mariadb-install-db/mysql_install_db)"
      return 1
    fi

    case "$(basename "$mariadb_init_bin")" in
      mariadb-install-db)
        initcmd="'$mariadb_init_bin' --user=mysql --basedir=/usr --datadir=/var/lib/mysql --skip-test-db"
        ;;
      mysql_install_db)
        initcmd="'$mariadb_init_bin' --user=mysql --datadir=/var/lib/mysql"
        ;;
      *)
        log_warn "[$TARGET] 不支持的 MariaDB 初始化命令:$mariadb_init_bin"
        return 1
        ;;
    esac

    [ -n "${MARIADB_EXTRA_INIT_FLAGS:-}" ] && initcmd="$initcmd ${MARIADB_EXTRA_INIT_FLAGS}"
    svc="${svc:-mariadb}"
  else
    if [ -z "$mysql_server_bin" ] || [ ! -x "$mysql_server_bin" ]; then
      log_warn "[$TARGET] 未找到可用的 MySQL 服务端命令(mysqld/mariadbd)"
      return 1
    fi
    initcmd="'$mysql_server_bin' --initialize-insecure --user=mysql --datadir=/var/lib/mysql"
    [ -n "${MYSQL_EXTRA_INIT_FLAGS:-}" ] && initcmd="$initcmd ${MYSQL_EXTRA_INIT_FLAGS}"
    svc="${svc:-mysqld}"
  fi

  run_cmd "sudo systemctl stop '$svc' 2>/dev/null || true"
  run_cmd "sudo rm -rf /var/lib/mysql/*"
  run_cmd "sudo install -d -o mysql -g mysql /var/lib/mysql"

  log_info "[$TARGET] 运行初始化命令:$initcmd"
  if ! run_cmd "sudo bash -lc \"$initcmd\""; then
    log_warn "数据库初始化失败:$initcmd"
    return 1
  fi

  run_cmd "sudo systemctl enable '$svc' 2>/dev/null || true"
  if ! run_cmd "sudo systemctl restart '$svc'"; then
    log_warn "重启 $svc 失败,请检查 journalctl -u $svc"
    return 1
  fi

  if [ -n "$db_client_bin" ] && [ -x "$db_client_bin" ]; then
    local db_admin_cmd=""
    local mariadb_root_sql=""
    local mysql_root_sql=""

    log_info "[$TARGET] 重置数据库 root 账号密码与授权…"

    if [ "${DRY_RUN:-0}" = "1" ]; then
      echo "+ 探测数据库 root 登录方式并重置 root 密码/授权"
    else
      if sudo "$db_client_bin" --protocol=socket -uroot -e "SELECT 1" >/dev/null 2>&1; then
        db_admin_cmd="sudo '$db_client_bin' --protocol=socket -uroot"
      elif sudo "$db_client_bin" --protocol=socket -uroot -p"${db_root_password}" -e "SELECT 1" >/dev/null 2>&1; then
        db_admin_cmd="sudo '$db_client_bin' --protocol=socket -uroot -p'${db_root_password}'"
      fi

      if [ -z "$db_admin_cmd" ]; then
        log_warn "[$TARGET] 无法确定 root 的可用登录方式,跳过 root 密码重置"
      else
        mariadb_root_sql="ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('${db_root_password}'); CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY '${db_root_password}'; ALTER USER 'root'@'%' IDENTIFIED BY '${db_root_password}'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"
        mysql_root_sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${db_root_password}'; CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY '${db_root_password}'; ALTER USER 'root'@'%' IDENTIFIED BY '${db_root_password}'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"

        if [ "$flavor" = "mariadb" ]; then
          if ! run_cmd "$db_admin_cmd -e \"$mariadb_root_sql\" >/dev/null 2>&1"; then
            if ! run_cmd "$db_admin_cmd -e \"$mysql_root_sql\" >/dev/null 2>&1"; then
              log_warn "[$TARGET] root 密码/授权重置失败,请手动检查 MariaDB 认证方式"
            fi
          fi
        else
          if ! run_cmd "$db_admin_cmd -e \"$mysql_root_sql\" >/dev/null 2>&1"; then
            log_warn "[$TARGET] root 密码/授权重置失败,请手动检查 MySQL 认证方式"
          fi
        fi
      fi
    fi
  else
    log_warn "[$TARGET] 未找到 mariadb/mysql 客户端,跳过 root 密码重置"
  fi

  log_info "[$TARGET] 数据库初始化完成(flavor=$flavor, service=$svc)"
}

#=============================
#  远端执行(通过 sshpass)
#=============================
run_remote() {
  local user=$1 ip=$2 pass=$3
  sshpass -p "$pass" ssh -o StrictHostKeyChecking=no \
                         -o UserKnownHostsFile=/dev/null \
                         -o ConnectTimeout=8 \
                         "$user@$ip" \
                         "TARGET=$ip DRY_RUN=${DRY_RUN:-0} SKIP_DB=${SKIP_DB:-0} RESET_DB=${RESET_DB:-0} FORCE_KILL_PATTERNS=${FORCE_KILL_PATTERNS:-0} CLEAN_OLD_TMP=${CLEAN_OLD_TMP:-0} NUKE_TMP=${NUKE_TMP:-0} TMP_TTL_DAYS=${TMP_TTL_DAYS} bash -s remote" < "$0"
}

#=============================
#  本地主流程
#=============================
main() {
  require_redhat_like
  pm_detect
  ensure_base_tools
  ensure_locale_kylin
  ensure_sshpass

  mapfile -t local_ips < <(hostname -I 2>/dev/null | tr ' ' '\n' || true)
  local_ips+=(127.0.0.1)

  if [ ! -f "./hosts.txt" ]; then
    log_error "hosts.txt 不存在(每行格式:user password ip)"
    exit 1
  fi

  while IFS= read -r line || [ -n "$line" ]; do
    line="$(echo "$line" | tr -d '\r')"
    [[ -z "$line" || "$line" =~ ^# ]] && continue
    read -r user pass ip <<< "$(echo "$line" | xargs)"
    TARGET="$ip"
    log_info "=== 开始处理 $TARGET ==="

    if printf '%s\n' "${local_ips[@]}" | grep -Fxq "$ip"; then
      stop_services_and_kill
      remove_ambari_bigtop_rpms
      cleanup_files_users_db
      ensure_locale_kylin
    else
      run_remote "$user" "$ip" "$pass"
    fi

    log_info "=== $TARGET 处理完毕 ==="
  done < "./hosts.txt"

  log_info "所有节点清理完成,详见 $LOGFILE"
}

#=============================
#  远端主流程
#=============================
remote_main() {
  require_redhat_like
  pm_detect
  ensure_base_tools
  ensure_locale_kylin

  stop_services_and_kill
  remove_ambari_bigtop_rpms
  cleanup_files_users_db
  ensure_locale_kylin
}

#=============================
#  脚本入口
#=============================
if [[ "${1-}" == "remote" ]]; then
  remote_main
  exit 0
else
  main
  exit 0
fi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598

# 三、hosts.txt 格式说明

用户名 密码 IP地址
root xxxxxx 192.168.3.1
root xxxxxx 192.168.3.2
root xxxxxx 192.168.3.3

笔记

Kylin V10 全节点需 网络互通、具备 sudo/root 权限。hosts.txt 可直接复用 ONEKEY 安装方案的同名文件。

# 四、使用方法

# 1、准备 hosts.txt

将所有目标主机账号、密码、IP 填入 hosts.txt 并与脚本置于同目录。

# 2、执行卸载脚本

chmod +x uninstall_ambari_cluster.sh
./uninstall_ambari_cluster.sh
1
2

日志默认写入 ambari_cleanup.log;失败节点会落盘到 failed_hosts.log。

# 3、核查结果(建议逐台)

  1. 关键目录确认 /var/lib/ambari-*、/usr/bigtop、/var/lib/mysql/、/etc/ambari*、/var/log/ambari*
  2. 数据卷按需复核 /data1、/data2、/data/hadoop、/data/kafka-logs、/hadoop/*
  3. 服务状态 systemctl status ambari-server ambari-agent mariadb 应处于 inactive/disabled
可选:保留业务数据的做法

若节点上存在需保留的数据分区,请在脚本前部的 数据清理段 注释对应的 rm -rf 行,或在生产环境使用前先在测试环境验证路径白名单。

# 五、Kylin V10 差异项说明

# 一、包管理差异

  1. Kylin 使用 yum/dnf,脚本已自动识别,不再包含 APT 分支。
  2. Ambari/Bigtop 组件卸载通过 yum/dnf remove,正则命中 ambari|bigtop 包名,避免遗漏。

# 二、服务管理

  1. 统一使用 systemctl stop/disable 处理 Ambari/MDB/Nginx 及常见大数据服务;
  2. 对历史“非 systemd 启动脚本”进程,通过 关键词杀进程 兜底(java/hadoop/hdfs/kafka/...)。

# 三、数据与账号回收

  1. 覆盖 用户/用户组 清理:ambari-qa、hdfs、yarn、hive、kafka、zookeeper、spark、flink、ranger…;
  2. 数据目录按 关键词 与 常见路径 双清理,减少残留;
  3. MariaDB 支持 数据重建(mariadb-install-db),用于集群重装前置。

警告

生产环境谨慎执行!脚本默认会清理多类数据路径与用户。如需保留业务数据/账号,请先调小清理范围再执行。

# 六、图示参考

0df112810f1b9d7ac92f07250638035f

405f9e94ffb446d3cfca3c77dbc4cadb

0a45a802be3d738ddf135177beb2fa1b

#Ambari#一键部署#自动化部署#Kylin V10#Bigtop#ARM架构
Step9—Ambari Web Ui 初始化安装
【Kylin V10 aarch64】自动安装脚本

← Step9—Ambari Web Ui 初始化安装 【Kylin V10 aarch64】自动安装脚本→

最近更新
01
当前版本 2026/06
06-05
02
Step7—Mariadb初始化
03-23
03
【Kylin V10 aarch64】自动安装脚本 aarch64
03-22
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式