[改造]-魔改posinst-适配ubuntu22New
# 一、效果预览
如下图所示,这是修改后的效果:
# 二、修改位置
文件路径:
ambari-metrics-assembly/src/main/package/deb/control/postinst
在原有创建 sink jar 软链逻辑后追加用户、组、目录初始化及权限配置,确保安装后 ams
用户可直接启动服务。
# 三、追加脚本片段
# Ensure group hadoop exists
if ! getent group hadoop >/dev/null; then
groupadd hadoop
fi
# Ensure user ams exists and is part of hadoop group
if ! id ams >/dev/null 2>&1; then
useradd -g hadoop -m -s /bin/bash ams
fi
# Directories to initialize
RESOURCE_MONITORING_DIR="/usr/lib/python2.6/site-packages/resource_monitoring"
LOG_COLLECTOR="/var/log/ambari-metrics-collector"
LOG_GRAFANA="/var/log/ambari-metrics-grafana"
LOG_MONITOR="/var/log/ambari-metrics-monitor"
RUN_COLLECTOR="/var/run/ambari-metrics-collector"
RUN_GRAFANA="/var/run/ambari-metrics-grafana"
RUN_MONITOR="/var/run/ambari-metrics-monitor"
log_dirs=("${LOG_COLLECTOR}" "${LOG_GRAFANA}" "${LOG_MONITOR}")
run_dirs=("${RUN_COLLECTOR}" "${RUN_GRAFANA}" "${RUN_MONITOR}")
# Batch create, chown, chmod
for dir in "${log_dirs[@]}" "${run_dirs[@]}"; do
mkdir -p "${dir}"
chown -R ams:hadoop "${dir}"
chmod 755 "${dir}"
done
chown -R ams:hadoop "${RESOURCE_MONITORING_DIR}"
chmod -R 755 "${RESOURCE_MONITORING_DIR}"
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
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
注意
Ubuntu 22.04 默认 Python3,需将 RESOURCE_MONITORING_DIR
调整到实际 Python3 目录。
# 四、完整可替换 postinst
#!/bin/bash
set -e
HADOOP_LINK_NAME="/usr/lib/ambari-metrics-hadoop-sink/ambari-metrics-hadoop-sink.jar"
HADOOP_SINK_JAR="/usr/lib/ambari-metrics-hadoop-sink/${hadoop.sink.jar}"
FLUME_LINK_NAME="/usr/lib/flume/lib/ambari-metrics-flume-sink.jar"
FLUME_SINK_JAR="/usr/lib/flume/lib/${flume.sink.jar}"
KAFKA_LINK_NAME="/usr/lib/ambari-metrics-kafka-sink/ambari-metrics-kafka-sink.jar"
KAFKA_SINK_JAR="/usr/lib/ambari-metrics-kafka-sink/${kafka.sink.jar}"
JARS=(${HADOOP_SINK_JAR} ${FLUME_SINK_JAR} ${KAFKA_SINK_JAR})
LINKS=(${HADOOP_LINK_NAME} ${FLUME_LINK_NAME} ${KAFKA_LINK_NAME})
for index in ${!LINKS[*]}; do
rm -f "${LINKS[$index]}" || true
ln -s "${JARS[$index]}" "${LINKS[$index]}" || true
done
# 用户组与目录初始化
if ! getent group hadoop >/dev/null; then
groupadd hadoop
fi
if ! id ams >/dev/null 2>&1; then
useradd -g hadoop -m -s /bin/bash ams
fi
RESOURCE_MONITORING_DIR="/usr/lib/python2.6/site-packages/resource_monitoring"
LOG_COLLECTOR="/var/log/ambari-metrics-collector"
LOG_GRAFANA="/var/log/ambari-metrics-grafana"
LOG_MONITOR="/var/log/ambari-metrics-monitor"
RUN_COLLECTOR="/var/run/ambari-metrics-collector"
RUN_GRAFANA="/var/run/ambari-metrics-grafana"
RUN_MONITOR="/var/run/ambari-metrics-monitor"
log_dirs=("${LOG_COLLECTOR}" "${LOG_GRAFANA}" "${LOG_MONITOR}")
run_dirs=("${RUN_COLLECTOR}" "${RUN_GRAFANA}" "${RUN_MONITOR}")
for dir in "${log_dirs[@]}" "${run_dirs[@]}"; do
mkdir -p "${dir}"
chown -R ams:hadoop "${dir}"
chmod 0755 "${dir}"
done
if [ -d "${RESOURCE_MONITORING_DIR}" ]; then
chown -R ams:hadoop "${RESOURCE_MONITORING_DIR}"
chmod -R 0755 "${RESOURCE_MONITORING_DIR}"
fi
exit 0
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
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
- 01
- [/metrics/aggregated] — 聚合数据范围 检查点09-19
- 02
- [/metrics] — 反向分析接口参数 请求抓包09-17
- 03
- [/metrics] — 普通指标写入方法 POST09-17