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 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-incubating | 0.7 线补丁版 |
| 0.8.0-incubating | 0.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.sh | AMS 服务管理脚本(start/stop/status 等) |
bin/optimizer.sh | 独立 optimizer 进程管理脚本(可选功能) |
conf/config.yaml | AMS 主配置(端口、账号、元数据库等) |
conf/jvm.properties | JVM 堆等参数 |
conf/derby/ams-derby-init.sql | derby 元数据库初始化 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"
| 参数 | 出厂值 | 本文值 | 说明 |
|---|---|---|---|
xms | 8196 | 256 | 初始堆,-Xms256m |
xmx | 8196 | 512 | 最大堆,-Xmx512m,空表场景 512MB 足够 |
jmx.remote.port | 空 | 空 | JMX 远程端口,默认不开 |
extra.options | NewRatio 等 | 不变 | 附加 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=forking | ams.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-password | admin / q1w2e3r4 |
| REST 鉴权方式 | 同上 ams.http-server.rest-auth-type | token(默认,另可选 basic) |
| 元数据库 | 同上 ams.database.* | 内嵌 derby,路径 /opt/amoro/derby |
| JVM 堆 | /opt/amoro/conf/jvm.properties | xms=256 / xmx=512 |
| 日志 | /opt/amoro/conf/log4j2.xml,输出到 /opt/amoro/logs/ | ams-info/ams-error/gc.log 等 |
| systemd | /etc/systemd/system/amoro-ams.service | Type=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
十、参考链接
- 官方下载页(incubator 路径):https://downloads.apache.org/incubator/amoro/
- 官方文档首页:https://amoro.apache.org/
- AMS 部署文档:https://amoro.apache.org/docs/latest/deployment/
- Quickstart:https://amoro.apache.org/quickstart/
- Apache Amoro 源码仓库:https://github.com/apache/amoro