TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)
  • Ambari

  • Ambari-infra

  • Ambari-metrics

    • psutil 缺失与 archive_util 导入错误
      • 🚨 问题概述
      • 🎯 典型错误日志分析
      • 🛠 一站式解决方案脚本
      • ✅ 执行成功后验证结果
  • 报错解决-Ambari
  • Ambari-metrics
JaneTTR
2022-12-18
目录

psutil 缺失与 archive_util 导入错误

# 🚨 问题概述

在部署 Ambari Metrics Monitor 时,执行启动命令时报如下异常:

Traceback (most recent call last):
  File "/var/lib/ambari-agent/cache/common-services/AMBARI_METRICS/3.0.0/package/scripts/metrics_monitor.py", line 78, in <module>
    AmsMonitor().execute()
  File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 355, in execute
    method(env)
  File "/var/lib/ambari-agent/cache/common-services/AMBARI_METRICS/3.0.0/package/scripts/metrics_monitor.py", line 43, in start
    action = 'start'
  File "/usr/lib/ambari-agent/lib/ambari_commons/os_family_impl.py", line 89, in thunk
    return fn(*args, **kwargs)
  File "/var/lib/ambari-agent/cache/common-services/AMBARI_METRICS/3.0.0/package/scripts/ams_service.py", line 109, in ams_service
    user=params.ams_user
  File "/usr/lib/ambari-agent/lib/resource_management/core/base.py", line 166, in __init__
    self.env.run()
  File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 160, in run
    self.run_action(resource, action)
  File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 124, in run_action
    provider_action()
  File "/usr/lib/ambari-agent/lib/resource_management/core/providers/system.py", line 280, in action_run
    returns=self.resource.returns)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 72, in inner
    result = function(command, **kwargs)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 102, in checked_call
    tries=tries, try_sleep=try_sleep, timeout_kill_strategy=timeout_kill_strategy, returns=returns)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 150, in _call_wrapper
    result = _call(command, **kwargs_copy)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 314, in _call
    raise ExecutionFailed(err_msg, code, out, err)
resource_management.core.exceptions.ExecutionFailed: Execution of '/usr/sbin/ambari-metrics-monitor --config /etc/ambari-metrics-monitor/conf start' returned 255. Building psutil...
Traceback (most recent call last):
  File "setup.py", line 17, in <module>
    from distutils.core import setup, Extension
  File "/usr/lib64/python2.7/distutils/core.py", line 21, in <module>
    from distutils.cmd import Command
  File "/usr/lib64/python2.7/distutils/cmd.py", line 11, in <module>
    from distutils import util, dir_util, file_util, archive_util, dep_util
ImportError: cannot import name archive_util
Verifying Python version compatibility...
Using python  /usr/bin/python2
Checking for previously running Metric Monitor...
/var/run/ambari-metrics-monitor/ambari-metrics-monitor.pid found with no process. Removing 14127...
Starting ambari-metrics-monitor
Verifying ambari-metrics-monitor process status with PID : 18087
Output of PID check : 
ERROR: ambari-metrics-monitor start failed. For more details, see /var/log/ambari-metrics-monitor/ambari-metrics-monitor.out:
====================
----------------------Finished building psutil---------------------
psutil binaries need to be built by running, psutil/build.py manually or by running a, mvn clean package, command.
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/resource_monitoring/main.py", line 26, in <module>
    from core.controller import Controller
  File "/usr/lib/python2.6/site-packages/resource_monitoring/core/controller.py", line 29, in <module>
    from host_info import HostInfo
  File "/usr/lib/python2.6/site-packages/resource_monitoring/core/host_info.py", line 25, in <module>
    import psutil
ImportError: No module named psutil
====================
Monitor out at: /var/log/ambari-metrics-monitor/ambari-metrics-monitor.out
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

这是由于 psutil 模块未正确安装或 Python 环境缺失某些基础工具导致的。

# 🎯 典型错误日志分析

启动 Metrics Monitor 的过程中,日志中关键异常如下:

ImportError: cannot import name archive_util
ImportError: No module named psutil
Execution of '/usr/sbin/ambari-metrics-monitor ...' returned 255
1
2
3

这两个错误本质是 Python2 依赖不全导致 psutil 安装失败:

  1. archive_util.py 是 distutils 模块的一部分,部分老旧系统未预置。
  2. psutil 是 Monitor 的核心依赖模块,未安装或编译失败会导致启动直接中断。

# 🛠 一站式解决方案脚本

为避免手动排查环境问题,建议使用如下脚本一次性完成依赖修复与模块安装:

#!/bin/bash

echo "== 一站式修复 Ambari Metrics Monitor 依赖问题 =="

# 1. 修复 archive_util.py 缺失(使用 ghfast.top 镜像)
echo "-- 下载 archive_util.py ..."
mkdir -p /usr/lib64/python2.7/distutils
curl -fsSL -o /usr/lib64/python2.7/distutils/archive_util.py \
  https://ghfast.top/https://raw.githubusercontent.com/python/cpython/2.7/Lib/distutils/archive_util.py

# 验证 import 正常
python -c "from distutils import archive_util" || {
  echo "!! archive_util 依然导入失败,请手动检查路径 /usr/lib64/python2.7/distutils/"
  exit 1
}
echo "== archive_util 修复成功 =="

# 2. 设置 pip 国内源(阿里云)
echo "-- 设置 pip 镜像源为阿里云"
mkdir -p ~/.pip
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
EOF

# 3. 安装 pip(使用 aliyun 国内源)
echo "-- 安装 pip(使用 aliyun 国内源)..."
curl -O https://mirrors.aliyun.com/pypi/get-pip.py
python get-pip.py

# 4. 安装 psutil
echo "-- 安装 psutil 模块 ..."
pip install psutil

# 5. 验证 psutil 可用
python -c "import psutil; print psutil.__version__" || {
  echo "!! psutil 安装失败,请检查"
  exit 1
}
echo "== psutil 安装成功 =="

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

你也可以保存为脚本 fix-monitor.sh 并执行:

bash fix-monitor.sh
1

# ✅ 执行成功后验证结果

执行完成后重新启动 Monitor,psutil 模块已成功导入,错误日志消失:

psutil 安装成功

psutil 安装完成 Monitor 启动过程不再抛出 Python 异常,日志中 `ambari-metrics-monitor start` 返回正常。
#Ambari#Metrics Monitor#Python#psutil
java.security.InvalidAlgorithmParameterException

← java.security.InvalidAlgorithmParameterException

最近更新
01
Pandoc 缺失导致 SparkR 构建失败
06-08
02
Cyrus SASL/GSASL 缺失解决
06-07
03
Hadoop_3.3.4 编译实战 1.0.0+
06-06
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式