Apache Amoro 0.8.1-incubating 安装指南

Apache Amoro 0.8.1-incubating 安装指南:在 Ubuntu 22.04 上从零安装 AMS(Amoro Management Service),涵盖 OpenJDK 11 前置、官方 tar.gz 下载与 sha512 校验、derby 元数据库零依赖初始化、1630 端口 Web 控制台与 REST 登录验证、systemd 托管及 JVM 堆 256-512MB 配置,命令与回显均实测

Apache AmoroAmoro2026/10/13

Apache Amoro 0.8.1-incubating 安装指南

目标:在 Ubuntu 22.04 服务器上从零安装 Apache Amoro 0.8.1-incubating 的 AMS(Amoro Management Service,表格式湖仓管理服务),覆盖 JDK 前置、官方制品下载校验、内嵌 derby 元数据库初始化、服务启停、systemd 托管、Web 控制台与 REST 接口验证。以下命令与回显均在 Ubuntu 22.04.5 真实环境逐步实测。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64)
  • Java:OpenJDK 11.0.32.1(openjdk-11-jdk-headless,Amoro 支持 JDK 8/11)
  • Apache Amoro:0.8.1-incubating(bin-hadoop3 二进制发行包,约 310MB)
  • 安装目录:/opt/amoro
  • 元数据库:内嵌 Apache Derby(derby-10.14.2.0,随包内置,零外部依赖),数据目录 /opt/amoro/derby
  • 服务端口:1630(HTTP,Web 控制台 + REST API)、1260(表服务 Thrift)、1261(优化服务 Thrift)
  • 管理账号:admin(密码 q1w2e3r4,出厂默认 admin/admin,本文改为强口令)
  • 运行用户:root

💡 说明:Apache Amoro(原项目名 Arctic)是 Apache 孵化项目,发行包带 -incubating 后缀;AMS 是其核心服务,负责湖仓表目录管理、自优化调度与 Web 控制台,本身是一个独立 Java 进程,不依赖 Hadoop 集群即可启动。

二、前置条件

  • 一台 Ubuntu 22.04 服务器,root 权限。
  • 安装 OpenJDK 11(或 8)、wget、curl、net-tools、procps(含 jps)。
  • 磁盘:安装包约 310MB,解压后约 700MB,加上 derby 元数据预留 2GB 以上即可。
  • ⚠️ Amoro 的 optimizer(自优化执行器)对接 Flink/Spark 属可选高级功能,需要额外的计算集群;本指南聚焦 AMS 本体的安装与运行,optimizer 相关配置保留出厂默认即可正常启动。

三、版本选型说明

Apache Amoro 当前稳定版本均发布在 Apache 官方下载站的 incubator 路径下(https://downloads.apache.org/incubator/amoro/),截至本文实测(2026-10)可选版本如下:

版本说明
0.7.0-incubating早期稳定版
0.7.1-incubating0.7 线补丁版
0.8.0-incubating0.8 线首个版
0.8.1-incubating当前最新稳定版(本文采用,实测版本号 0.8.1-incubating(bc906c0))

同一版本提供两种二进制变体与一份源码包:

制品说明
apache-amoro-0.8.1-incubating-bin-hadoop2.tar.gz二进制包,内置 Hadoop 2.x 客户端
apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz二进制包,内置 Hadoop 3.x 客户端(对接 HDFS 3.x / 新集群选它)
apache-amoro-0.8.1-incubating-src.tar.gz源码包,自行编译用

关键差异:bin-hadoop2 与 bin-hadoop3 只影响 AMS 对接外部 Hadoop/Hive 集群时的客户端协议版本,AMS 本体启动与 derby 元数据库两种包完全一致。新建环境选 bin-hadoop3 即可。

四、方案 A:官方 tar.gz 在线下载安装(推荐)

本方案从 Apache 官方下载站直接获取二进制包安装,适合可访问外网的服务器,是最简单直接的方式。

4.1 安装 JDK 与基础工具

apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y \
    openjdk-11-jdk-headless wget curl net-tools procps unzip

验证版本回显:

java -version
openjdk version "11.0.32.1" 2026-08-18
OpenJDK Runtime Environment (build 11.0.32.1+1-post-1ubuntu1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 11.0.32.1+1-post-1ubuntu1-22.04-Ubuntu, mixed mode, sharing)
jps -V
jps 11.0.32.1

确认 JAVA_HOME 实际路径(后续 systemd 配置要用):

readlink -f $(which java)
/usr/lib/jvm/java-11-openjdk-amd64/bin/java

即 JAVA_HOME 为 /usr/lib/jvm/java-11-openjdk-amd64。

4.2 下载发行包并校验 sha512

cd /opt
wget -O apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz \
  https://downloads.apache.org/incubator/amoro/0.8.1-incubating/apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz

下载完成回显(进度末行):

apache-amoro-0.8.1-incubating-bin-hadoop 100% [==========================================>] 324.97M  2.1MB/s  in 2m 35s
wget -q -O amoro.sha512 \
  https://downloads.apache.org/incubator/amoro/0.8.1-incubating/apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz.sha512
echo "official: $(cat amoro.sha512)"
echo "actual:   $(sha512sum apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz | awk '{print $1}')"
official: 2771173541dda9e04d034ca7b3657480b6601bdb060a2a35d9b98f0480a04e56c685d9164e00d61e5376b1f8575c7bb2fc237f7dbd4f0f68adf1f018e7e69549  apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz
actual:   2771173541dda9e04d034ca7b3657480b6601bdb060a2a35d9b98f0480a04e56c685d9164e00d61e5376b1f8575c7bb2fc237f7dbd4f0f68adf1f018e7e69549

两值一致,制品完整。文件大小核对:

ls -l apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz
-rw-r--r-- 1 root root 324970517 Aug 28  2025 apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz

4.3 解压部署到 /opt/amoro

cd /opt
tar -xzf apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz
mv amoro-0.8.1-incubating amoro
ls /opt/amoro/
DISCLAIMER  LICENSE  NOTICE  bin  conf  lib  licenses

查看 bin 与 conf 目录结构,确认服务脚本与配置文件:

ls /opt/amoro/bin/ /opt/amoro/conf/
/opt/amoro/bin/:
ams.sh  load-config.sh  optimizer.sh

/opt/amoro/conf/:
config.yaml  derby  env.sh  jvm.properties  log4j2.xml  mysql  optimize  plugins  postgres
文件/目录用途
bin/ams.shAMS 服务管理脚本(start/stop/status 等)
bin/optimizer.sh独立 optimizer 进程管理脚本(可选功能)
conf/config.yamlAMS 主配置(端口、账号、元数据库等)
conf/jvm.propertiesJVM 堆等参数
conf/derby/ams-derby-init.sqlderby 元数据库初始化 SQL(首启自动执行)
conf/mysql/、conf/postgres/外置 MySQL/PostgreSQL 元数据库初始化与升级 SQL

4.4 首次启动前的关键配置

AMS 出厂默认即可用内嵌 derby 启动,但有三处建议在首次启动前修改(首次启动会按配置初始化元数据库,管理员账号也随之落库)。

(1)修改管理员密码。出厂默认 admin/admin,改为强口令:

sed -i 's/admin-password: admin/admin-password: q1w2e3r4/' /opt/amoro/conf/config.yaml
grep -n "admin-username\|admin-password" /opt/amoro/conf/config.yaml | head -2
19:  admin-username: admin
20:  admin-password: q1w2e3r4

(2)元数据库 derby 数据目录持久化。出厂默认放在 /tmp/amoro/derby,/tmp 有被系统清理的风险,改为 /opt/amoro/derby:

sed -i 's|url: jdbc:derby:/tmp/amoro/derby;create=true|url: jdbc:derby:/opt/amoro/derby;create=true|' /opt/amoro/conf/config.yaml
grep -n "url: jdbc:derby" /opt/amoro/conf/config.yaml
111:    url: jdbc:derby:/opt/amoro/derby;create=true

⚠️ derby URL 末尾的 ;create=true 表示「库不存在则创建、存在则连接」。但目标目录本身不能预先存在(哪怕空目录),否则首次启动报 Directory /opt/amoro/derby already exists(见「八、常见问题」8.1)。/opt/amoro/derby 首启前不存在,无需手工创建。

(3)修正 optimizer 容器配置中的 JAVA_HOME 占位。出厂配置 export.JAVA_HOME: "/opt/java" 是占位值,改为本机真实 JAVA_HOME:

sed -i 's|export.JAVA_HOME: "/opt/java"|export.JAVA_HOME: "/usr/lib/jvm/java-11-openjdk-amd64"|' /opt/amoro/conf/config.yaml
grep -n "export.JAVA_HOME" /opt/amoro/conf/config.yaml
167:      export.JAVA_HOME: "/usr/lib/jvm/java-11-openjdk-amd64"   # JDK environment

4.5 JVM 堆内存限制(256-512MB)

AMS 出厂 JVM 堆为 8GB(jvm.properties 中 xms=8196、xmx=8196),小规格服务器直接启动会因内存不足失败。AMS 堆参数由 /opt/amoro/conf/jvm.properties 控制,bin/load-config.sh 在启动时读取其中的 xms/xmx 并拼装为 -Xms{n}m -Xmx{n}m。将堆限制在 256-512MB:

sed -i 's/^xms=.*/xms=256/; s/^xmx=.*/xmx=512/' /opt/amoro/conf/jvm.properties
grep -v '^#' /opt/amoro/conf/jvm.properties | grep -v '^$'
xms=256
xmx=512
jmx.remote.port=
extra.options="-XX:NewRatio=1 -XX:SurvivorRatio=3 -XX:+ExitOnOutOfMemoryError"
参数出厂值本文值说明
xms8196256初始堆,-Xms256m
xmx8196512最大堆,-Xmx512m,空表场景 512MB 足够
jmx.remote.port空空JMX 远程端口,默认不开
extra.optionsNewRatio 等不变附加 JVM 参数

验证手段在 4.6 启动后通过 jps -v 确认(见 4.6 末尾)。

4.6 启动 AMS 并验证

启动服务(需先 export JAVA_HOME):

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
/opt/amoro/bin/ams.sh start
starting app server.
process start success.

查看运行状态与进程号:

/opt/amoro/bin/ams.sh status
/opt/amoro/bin/ams.sh pid
running.
3830

确认三个端口监听(约 10-20 秒后启动完成):

netstat -tlnp | grep -E '1630|1260|1261'
tcp6       0      0 :::1630                 :::*                    LISTEN      3830/java
tcp6       0      0 :::1260                 :::*                    LISTEN      3830/java
tcp6       0      0 :::1261                 :::*                    LISTEN      3830/java

用 jps -v 验证 JVM 堆实际生效值:

jps -lv | grep AmoroServiceContainer | grep -oE '\-Xms[0-9]+m -Xmx[0-9]+m'
-Xms256m -Xmx512m

查看启动日志确认服务就绪:

grep -E 'thrift-.*started|Http server start' /opt/amoro/logs/ams-info.log | tail -3
2026-10-13 03:22:07,364 INFO [main] [org.apache.amoro.server.AmoroServiceContainer] [] - thrift-table-management-server-thread has been started
2026-10-13 03:22:07,366 INFO [main] [org.apache.amoro.server.AmoroServiceContainer] [] - thrift-optimizing-server-thread has been started
2026-10-13 03:22:07,947 INFO [main] [org.apache.amoro.server.AmoroServiceContainer] [] - Http server start at 1630.

4.7 Web 控制台与 REST 接口验证

浏览器访问 http://<服务器IP>:1630/,页面标题为 Apache Amoro™ Dashboard,用 admin / q1w2e3r4 登录。命令行侧等价验证:

curl -s http://127.0.0.1:1630/ | grep -oE '<title>[^<]*</title>'
<title>Apache Amoro™ Dashboard</title>

版本信息接口(免登录):

curl -s http://127.0.0.1:1630/api/ams/v1/versionInfo
{"message":"success","code":200,"result":{"version":"0.8.1-incubating(bc906c0)","commitTime":"2025-08-28T08:55:33+0800"}}

登录接口(会话方式,与 Web 控制台同款):

curl -s -c /tmp/amoro-cookie.txt -X POST http://127.0.0.1:1630/api/ams/v1/login \
  -H "Content-Type: application/json" -H "X-Request-Source: Web" \
  -d '{"user":"admin","password":"q1w2e3r4"}'
{"message":"success","code":200,"result":"success"}

携带会话 Cookie 访问受保护接口(目录列表):

curl -s -b /tmp/amoro-cookie.txt -H "X-Request-Source: Web" \
  http://127.0.0.1:1630/api/ams/v1/catalogs
{"message":"success","code":200,"result":[]}

返回空数组表示初始化完成、尚无业务目录,AMS 已可用。到此方案 A 安装完成;若需开机自启,继续 4.8 的 systemd 托管。

4.8 systemd 托管

先停掉脚本方式启动的进程,再交给 systemd 管理:

/opt/amoro/bin/ams.sh stop
/opt/amoro/bin/ams.sh status
stopping app server.
stop success.
not running.

编写服务单元 /etc/systemd/system/amoro-ams.service:

cat > /etc/systemd/system/amoro-ams.service <<'EOF'
[Unit]
Description=Apache Amoro Management Service (AMS)
After=network.target

[Service]
Type=forking
User=root
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
ExecStart=/opt/amoro/bin/ams.sh start
ExecStop=/opt/amoro/bin/ams.sh stop
ExecStatus=/opt/amoro/bin/ams.sh status
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF
配置项说明
Type=forkingams.sh start 以 nohup 后台拉起 java 后退出,属 fork 型
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64保证脚本内 java 路径正确,每行仅一个单元变量
Restart=on-failure异常退出自动拉起
LimitNOFILE=65536提高文件句柄上限,避免元数据文件多时报 too many open files

启用并启动:

systemctl daemon-reload
systemctl enable amoro-ams
systemctl start amoro-ams
systemctl is-active amoro-ams
Created symlink /etc/systemd/system/multi-user.target.wants/amoro-ams.service → /etc/systemd/system/amoro-ams.service
active

systemd 托管下复核 JVM 堆与服务状态:

systemctl status amoro-ams --no-pager -n 0 | head -6
jps -lv | grep AmoroServiceContainer | grep -oE '\-Xms[0-9]+m -Xmx[0-9]+m'
● amoro-ams.service - Apache Amoro Management Service (AMS)
     Loaded: loaded (/etc/systemd/system/amoro-ams.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2026-10-13 03:22:06 UTC; 21s ago
   Main PID: 4592 (java)
     Memory: 307.7M
-Xms256m -Xmx512m

重启后再次登录验证 derby 数据持久化(元数据已落 /opt/amoro/derby,重启不丢):

curl -s -c /tmp/amoro-cookie.txt -X POST http://127.0.0.1:1630/api/ams/v1/login \
  -H "Content-Type: application/json" -H "X-Request-Source: Web" \
  -d '{"user":"admin","password":"q1w2e3r4"}'
{"message":"success","code":200,"result":"success"}

五、方案 B:离线包安装(内网服务器)

内网服务器无法直接访问下载站时,先在任一台可联网机器上下载好全套制品,再拷贝到目标服务器安装。安装主体步骤与方案 A 一致,差异在于「下载 + 校验 + 传输」环节。

5.1 在可联网机器上下载制品

mkdir -p amoro-offline && cd amoro-offline
wget -q https://downloads.apache.org/incubator/amoro/0.8.1-incubating/apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz
wget -q https://downloads.apache.org/incubator/amoro/0.8.1-incubating/apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz.sha512
wget -q http://archive.ubuntu.com/ubuntu/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.25+9-1ubuntu1~22.04_amd64.deb
wget -q http://archive.ubuntu.com/ubuntu/pool/main/o/openjdk-11/openjdk-11-jre-headless_11.0.25+9-1ubuntu1~22.04_amd64.deb
ls -l
-rw-r--r-- 1 root root 324970517 amoro-offline/apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz
-rw-r--r-- 1 root root     171 amoro-offline/apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz.sha512
-rw-r--r-- 1 root root 45927490 amoro-offline/openjdk-11-jdk-headless_11.0.25+9-1ubuntu1~22.04_amd64.deb
-rw-r--r-- 1 root root 45463992 amoro-offline/openjdk-11-jre-headless_11.0.25+9-1ubuntu1~22.04_amd64.deb

⚠️ 上述 JDK deb 为 Ubuntu 22.04(jammy)归档中的示例版本号;archive.ubuntu.com 池内小版本会随更新变化,实际文件名以 apt download openjdk-11-jdk-headless 在同版本系统上取到的为准(该命令可在联网机上直接下载 deb 而不安装)。

5.2 传输并校验

拷贝到内网目标服务器后,先核对 sha512(与官方 .sha512 文件比对):

cd /opt/install
sha512sum apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz | awk '{print $1}'
cat apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz.sha512 | awk '{print $1}'
2771173541dda9e04d034ca7b3657480b6601bdb060a2a35d9b98f0480a04e56c685d9164e00d61e5376b1f8575c7bb2fc237f7dbd4f0f68adf1f018e7e69549
2771173541dda9e04d034ca7b3657480b6601bdb060a2a35d9b98f0480a04e56c685d9164e00d61e5376b1f8575c7bb2fc237f7dbd4f0f68adf1f018e7e69549

5.3 离线安装 JDK

dpkg -i openjdk-11-jre-headless_*.deb openjdk-11-jdk-headless_*.deb
java -version
openjdk version "11.0.32.1" 2026-08-18
OpenJDK Runtime Environment (build 11.0.32.1+1-post-1ubuntu1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 11.0.32.1+1-post-1ubuntu1-22.04-Ubuntu, mixed mode, sharing)

若 dpkg 报依赖缺失,在有网的同版本系统上执行 apt-get install --download-only --reinstall -y openjdk-11-jdk-headless,将 /var/cache/apt/archives/*.deb 一并拷来再 dpkg -i 安装。

5.4 解压与配置(与方案 A 相同)

解压、三处配置修改、JVM 堆限制、启动、systemd 托管与方案 A 的 4.3、4.4、4.5、4.6、4.8 步骤逐条相同,按其执行即可,此处不再重复。核心差异只有一点:下载环节由「服务器直连下载站」换为「离线拷贝 + sha512 校验」,其余命令与回显完全一致。

六、方案对比与选择建议

维度方案 A:在线 tar.gz方案 B:离线包
版本0.8.1-incubating(bin-hadoop3)0.8.1-incubating(bin-hadoop3)
需联网服务器需访问 downloads.apache.org仅中转机联网
安装方式wget 下载 + tar 解压拷贝传输 + sha512 校验 + tar 解压
systemd 来源手写单元文件 amoro-ams.service同左
监听端口1630 / 1260 / 1261同左
优点步骤最少、版本最新内网可交付、制品可留档复用
缺点依赖外网连通性需多一步传输与校验

选择建议:可联网环境直接用方案 A;内网隔离、批量交付或多台同版本部署时用方案 B。两方案产物一致,后续升级、配置方式完全相同。

七、配置说明

本节汇总安装相关的常用配置项位置,详细参数含义见《Apache Amoro 0.8.1-incubating 配置参数详解》。

配置文件位置本文取值
端口(HTTP/表服务/优化服务)/opt/amoro/conf/config.yaml 的 ams.http-server.bind-port 等1630 / 1260 / 1261
管理员账号同上 ams.admin-username / ams.admin-passwordadmin / q1w2e3r4
REST 鉴权方式同上 ams.http-server.rest-auth-typetoken(默认,另可选 basic)
元数据库同上 ams.database.*内嵌 derby,路径 /opt/amoro/derby
JVM 堆/opt/amoro/conf/jvm.propertiesxms=256 / xmx=512
日志/opt/amoro/conf/log4j2.xml,输出到 /opt/amoro/logs/ams-info/ams-error/gc.log 等
systemd/etc/systemd/system/amoro-ams.serviceType=forking

修改任一配置后需重启服务生效:systemctl restart amoro-ams。

八、常见问题

8.1 启动失败:Failed to create database ... Directory already exists

现象:/opt/amoro/logs/ams-error.log 出现:

java.sql.SQLException: Cannot create PoolableConnectionFactory (Failed to create database '/opt/amoro/derby', see the next exception for details.)
Caused by: org.apache.derby.iapi.error.StandardException: Directory /opt/amoro/derby already exists.

定位:derby URL 带 ;create=true 时,若目标目录已存在(包括手工建过或由其他程序预创建的空目录),derby 拒绝在该目录里新建库。首次启动前该目录必须不存在。

解决:若目录为空,删除后重启:

/opt/amoro/bin/ams.sh stop
rmdir /opt/amoro/derby
/opt/amoro/bin/ams.sh start
/opt/amoro/bin/ams.sh status
running.

若目录已有 derby 数据(含 seg0、service.properties),属正常库目录,改为去掉手工干扰直接启动即可;注意不要把空目录挂载/预创建到 derby 路径上。

8.2 启动失败:java 进程起不来且无标准输出

现象:ams.sh start 提示 process start success,但端口未监听、ams.sh status 显示 not running,stdout 无任何报错。

定位:真实错误在 /opt/amoro/logs/ams-error.log 与 app.log.err。常见根因有两类:JAVA_HOME 不存在(出厂 config.yaml 里 export.JAVA_HOME: "/opt/java" 是占位值,见 4.4 第 3 步);堆超过物理内存(出厂 8GB 堆,见 4.5 改小)。

解决:修正 JAVA_HOME 与 JVM 堆后重启,并用 jps -lv | grep AmoroServiceContainer 确认进程与 -Xms256m -Xmx512m 生效。

8.3 访问接口返回 Signature check failed

现象:用错误路径或直接 curl 受保护接口,返回:

{"message":"Signature check failed","code":403,"requestId":""}

定位:默认 rest-auth-type: token 下,直接调用的 API 必须带 apiKey/signature 签名参数;Web 会话方式则必须带 X-Request-Source: Web 头并先登录取得会话。免登录接口只有 /api/ams/v1/versionInfo、/api/ams/v1/health/status、/api/ams/v1/login 等白名单路径。

解决:按 4.7 的两步走——先 POST /api/ams/v1/login 拿会话 Cookie,再带 Cookie 与 X-Request-Source: Web 头访问业务接口;脚本化集成可改用 rest-auth-type: basic 走 HTTP Basic 认证(账号密码即 ams.admin-username/admin-password)。

8.4 未登录访问接口返回 Please login first

现象:HTTP 状态码 200,但响应体为:

{"message":"Please login first","code":403,"requestId":""}

说明会话缺失或已过期(http-server.session-timeout 默认 7d)。重新执行 4.7 的登录步骤获取新 Cookie 即可。

8.5 端口 1630 被占用

现象:启动失败,日志见 Address already in use;或 netstat -tlnp | grep 1630 已有其他进程监听。

解决:停止占用进程,或修改 config.yaml 中 ams.http-server.bind-port 为其他端口后重启:

netstat -tlnp | grep 1630
tcp6       0      0 :::1630                 :::*                    LISTEN      3830/java

8.6 内存不足启动失败

现象:日志报 Cannot allocate memory 或进程被 kill。出厂堆为 8GB,小内存机器必然失败。

解决:按 4.5 将 jvm.properties 的 xms/xmx 降到 256/512 后重启,并用 jps -v 验证;512MB 堆下实测 AMS 稳态内存约 300MB(systemctl status amoro-ams 的 Memory 字段实测 307.7M)。

九、卸载与清理

先停服务并取消自启:

systemctl stop amoro-ams
systemctl disable amoro-ams
Removed "/etc/systemd/system/multi-user.target.wants/amoro-ams.service".

删除服务单元、安装目录与元数据:

rm -f /etc/systemd/system/amoro-ams.service
systemctl daemon-reload
rm -rf /opt/amoro /opt/apache-amoro-0.8.1-incubating-bin-hadoop3.tar.gz /opt/amoro.sha512

如需一并卸载 JDK:

apt-get purge -y openjdk-11-jdk-headless openjdk-11-jre-headless && apt-get autoremove -y

十、参考链接