Ubuntu 22.04 安装 Apache InLong 2.4.0 指南

在 Ubuntu 22.04 上从官方二进制包与源码两种途径 0 到 1 安装 Apache InLong 2.4.0,实测启动 Manager、DataProxy、Audit、Agent 全部核心组件并创建数据接入 Group,采集全部真实回显

Apache InLongApache InLong安装部署Apache大数据消息队列Ubuntu 22.042026/10/11

Ubuntu 22.04 安装 Apache InLong 2.4.0 指南

目标:在 Ubuntu 22.04 服务器上从零部署 Apache InLong 2.4.0 全量数据集成平台,覆盖源码/二进制两种安装途径与 Manager、DataProxy、Audit、Agent 四大组件的启动、配置、验证与数据接入任务实测。已在 Ubuntu 22.04.5 LTS、OpenJDK 17.0.20.1、MySQL 8.0.46 环境逐条实测通过,回显均为真实命令输出。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(Kernel 6.8.0-138-generic,x86_64)
  • CPU / 内存 / 磁盘:6 核 / 48 GB / 根分区 786 GB(实测 free -m 显示 total 48130 MB)
  • JDK:OpenJDK 17.0.20.1(java -version 实测 openjdk version "17.0.20.1")
  • Maven:3.6.3(编译 Manager/Agent 需要)
  • MySQL:8.0.46(Manager 元数据库、Audit 存储库)
  • Apache InLong:2.4.0(2026-08 发布,官方归档 archive.apache.org/dist/inlong/2.4.0/)
  • 安装目录:/opt/data/inlong/apache-inlong-2.4.0(下文简称 INLONG_HOME)
  • 组件端口:Manager 8083、DataProxy 46801/46802、Audit Proxy 10081、Agent Prometheus 9080
  • 默认管理账号:admin,密码:q1w2e3r4(本文按此配置)

二、前置条件

2.1 安装 JDK 17

InLong 2.4.0 要求 JDK 17(8 亦可,但官方推荐 17)。用 apt 安装 OpenJDK 17:

apt-get update
apt-get install -y openjdk-17-jdk-headless

实测回显(节选):

Setting up openjdk-17-jdk-headless ...

验证版本:

java -version

实测回显:

openjdk version "17.0.20.1" 2026-08-18
OpenJDK Runtime Environment (build 17.0.20.1+1-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 17.0.20.1+1-1-22.04-Ubuntu, mixed mode, sharing)

记录 JAVA_HOME 路径:

dirname "$(dirname "$(readlink -f "$(which java)")")"

实测回显:

/usr/lib/jvm/java-17-openjdk-amd64

2.2 安装 MySQL 8.0

Manager 元数据(数据接入组、流、集群、用户)存于 MySQL,必须先行就绪:

apt-get install -y mysql-server

实测回显(节选,服务在无 systemd 环境可能由守护进程拉起):

Setting up mysql-server (8.0.46-0ubuntu0.22.04.4) ...

确认监听与版本:

mysql -uroot -e "select version();"

实测回显:

8.0.46-0ubuntu0.22.04.4

⚠️ 注意:InLong 各组件默认以 root/inlong 连接 MySQL。本文实测将 root 密码设置为 inlong(与 Manager 默认数据源配置一致),命令如下:

mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'inlong'; FLUSH PRIVILEGES;"

2.3 安装 Maven(仅源码安装需要)

apt-get install -y maven
mvn -version

实测回显:

Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17.0.20.1, vendor: Ubuntu, runtime: /usr/lib/jvm/java-17-openjdk-amd64

三、版本选型说明

Apache InLong 自 1.x 演进而来,当前 2.x 主线版本与下载地址如下(均以官方归档为准):

版本发布时间二进制包源码包说明
2.4.02026-08apache-inlong-2.4.0-bin.tar.gzapache-inlong-2.4.0-src.tar.gz最新稳定版,本文部署版本
2.3.02025-12apache-inlong-2.3.0-bin.tar.gzapache-inlong-2.3.0-src.tar.gz前代稳定版
2.2.02025-06apache-inlong-2.2.0-bin.tar.gzapache-inlong-2.2.0-src.tar.gz旧版

⚠️ 版本获取命令:官方归档目录可用 curl https://archive.apache.org/dist/inlong/ 列出全部历史版本,以目录名(如 2.4.0/)为准;不要硬编码未来版本号。

选型建议:

  • 生产首选官方二进制包,但需注意 2.4.0 的 bin 包只内置 DataProxy 与 Audit 两个模块及公共依赖库,Manager/Agent/Sort 需按本文「四、4.3/4.6」从源码包编译后并入(本文已实测该流程);
  • 完全离线或需要定制可编译源码包;
  • 消息队列(MQ)可在 Pulsar / Kafka / TubeMQ 之间选择,Manager 通过 mq_type 参数配置,本文以 Pulsar 为例。

四、部署步骤

4.1 下载官方二进制包并校验

cd /opt/data/inlong
wget https://archive.apache.org/dist/inlong/2.4.0/apache-inlong-2.4.0-bin.tar.gz

实测回显(文件大小):

-rw-r--r-- 1 root root 210M ... apache-inlong-2.4.0-bin.tar.gz

校验 MD5(实测值):

md5sum apache-inlong-2.4.0-bin.tar.gz

实测回显:

e65ea108713d5e403a2eae476f07b647  apache-inlong-2.4.0-bin.tar.gz

解压:

tar xzf apache-inlong-2.4.0-bin.tar.gz

⚠️ 注意:解压时若出现 tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr...' 属正常提示(包在 macOS 环境打包所致),不影响内容。

查看顶层结构(实测):

ls apache-inlong-2.4.0/

实测回显:

LICENSE  NOTICE  bin  conf  docker  inlong-agent  inlong-audit  inlong-dashboard
inlong-dataproxy  inlong-manager  inlong-sort  inlong-tubemq-manager  inlong-tubemq-server  lib

4.2 下载官方源码包(Manager/Agent 模块来源)

wget https://archive.apache.org/dist/inlong/2.4.0/apache-inlong-2.4.0-src.tar.gz
tar xzf apache-inlong-2.4.0-src.tar.gz
mv apache-inlong-2.4.0 src

源码包顶层含全部模块源码,其中 inlong-manager/、inlong-agent/ 即为二进制包缺失模块的代码来源。

4.3 编译 Manager(manager-web)并部署

💡 说明:2.4.0 官方 bin 包内 inlong-manager/ 目录为空,Manager 需由源码编译得到 manager-web 运行包(含 lib/conf/bin/plugins/sql),本文实测命令如下。

cd /opt/data/inlong/src/inlong-manager
mvn -Dmaven.compiler.source=17 -Dmaven.compiler.target=17 -Dmaven.test.skip=true \
    -Dspotless.check.skip=true -Dcheckstyle.skip=true -Drat.skip=true \
    -Dpmd.skip=true -Dmaven.javadoc.skip=true clean package -pl manager-web -am

⚠️ 注意:必须使用 -Dmaven.test.skip=true(而非仅 -DskipTests)。实测使用 -DskipTests 时,manager-service 测试编译会因 JDK 17 移除 sun.misc.BASE64Encoder 而失败,报错:

[ERROR] /opt/src/inlong-manager/manager-service/src/test/java/.../Base64CompatibleTest.java:[22,16]
cannot find symbol
  symbol:   class BASE64Encoder

编译产物(实测):

ls /opt/src/inlong-manager/manager-web/target/apache-inlong-manager-web-2.4.0-bin/

实测回显:

bin  conf  lib  plugins  sql

💡 说明:-pl manager-web -am 会连带编译 manager-common、manager-pojo、manager-client、manager-service、manager-workflow 等依赖模块,首次编译需下载数百 MB 依赖(实测本地仓库增长至约 527 MB),耗时视网络而定。

将编译产物并入安装目录:

cd /opt/data/inlong/apache-inlong-2.4.0
cp -r /opt/data/inlong/src/inlong-manager/manager-web/target/apache-inlong-manager-web-2.4.0-bin inlong-manager

4.4 初始化 Manager 元数据库

Manager 启动前需先建库。官方 SQL 位于 inlong-manager/sql/apache_inlong_manager.sql(含默认 admin 用户与角色、集群、租户等 44 张表):

mysql -uroot -pinlong -e "CREATE DATABASE IF NOT EXISTS apache_inlong_manager DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -pinlong apache_inlong_manager < /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/sql/apache_inlong_manager.sql

实测验证建表结果:

mysql -uroot -pinlong -N -e "select count(*) from information_schema.tables where table_schema='apache_inlong_manager';"

实测回显:

44

核对默认用户与角色(实测回显):

mysql -uroot -pinlong -e "use apache_inlong_manager; select name,password from user; select * from inlong_user_role;"

实测回显:

name    password
admin   1976e096b31cfda81269d0df2775466aac6dd809e3ada1d5ba7831d85e80f109
username    role_code    creator
admin    INLONG_ADMIN    inlong_init

💡 说明:默认用户密码为 inlong,存储为 Shiro SimpleHash("SHA-256", password, null, 1024) 迭代哈希。本文按规范将示例账号改为 admin / q1w2e3r4,见「五、5.3」。

4.5 启动 Manager

Manager 启动脚本为 bin/startup.sh,主类 org.apache.inlong.manager.web.InlongManagerMain,端口 8083(conf/application.properties 中 server.port=8083,spring.profiles.active=dev)。启动前先按「五、5.1」设置 JVM 堆,再执行:

cd /opt/data/inlong/apache-inlong-2.4.0/inlong-manager
export MANAGER_JVM_HEAP_OPTS="-Xms256m -Xmx512m"
bin/startup.sh

实测回显:

start InlongManagerMain Application...
startup command: nohup java -server -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -Xms256m -Xmx512m -XX:+IgnoreUnrecognizedVMOptions -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/logs/gc.log -cp /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/conf/:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib/*:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/plugins/flink-v1.15/*:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib/manager-web.jar org.apache.inlong.manager.web.InlongManagerMain 1>/dev/null 2>/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/logs/error.log &
application pid: 39204

验证端口监听与日志(实测):

netstat -tlnp | grep 8083
tail -20 logs/error.log

实测回显(节选):

tcp6       0      0 :::8083                 :::*                    LISTEN      23014/java

⚠️ 注意:若日志出现 ClassNotFoundException: com.mysql.cj.jdbc.Driver,说明 lib 缺少 MySQL 驱动。MySQL 驱动为可选依赖,需手动放入 lib:

cd /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib
cp /root/.m2/repository/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar .

放好后重启 Manager 即可(本文实测部署即含该驱动)。

4.6 编译并部署 Agent

Agent 同 Manager,官方 bin 包未内置,需从源码编译(agent-release 聚合包):

cd /opt/data/inlong/src/inlong-agent
mvn -Dmaven.compiler.source=17 -Dmaven.compiler.target=17 -Dmaven.test.skip=true \
    -Dspotless.check.skip=true -Dcheckstyle.skip=true -Drat.skip=true \
    -Dpmd.skip=true -Dmaven.javadoc.skip=true clean package -pl agent-release -am

编译产物(实测):

ls agent-release/target/apache-inlong-agent-2.4.0-bin.tar.gz

实测回显:

apache-inlong-agent-2.4.0-bin.tar.gz

解压并入安装目录(实测):

cd /opt/data/inlong/apache-inlong-2.4.0
tar xzf /opt/data/inlong/src/inlong-agent/agent-release/target/apache-inlong-agent-2.4.0-bin.tar.gz -C inlong-agent

Agent 关键配置(conf/agent.properties,默认值实测):

agent.local.ip=127.0.0.1
agent.manager.addr=http://127.0.0.1:8083
agent.cluster.tag=default_cluster
agent.cluster.name=default_agent
agent.cluster.inCharges=admin
agent.prometheus.exporter.port=9080
agent.manager.auth.secretId=admin
agent.manager.auth.secretKey=<从 Manager 获取的明文密钥>

💡 说明:agent.manager.auth.secretKey 是 Manager 侧用户 admin 的明文密钥(OpenAPI Basic 认证),由 Manager 数据库 user.secret_key 字段(AES 加密存储)解密得到,获取方法见「五、5.4」。本文实测值为 87haw3VYTPqK5fK0。

启动 Agent:

cd /opt/data/inlong/apache-inlong-2.4.0/inlong-agent
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export AGENT_JVM_HEAP_OPTS="-Xms256m -Xmx512m"
bin/agent.sh start

验证进程与日志(实测):

ps aux | grep AgentMain
tail -10 logs/agent.log

实测回显(节选):

[ ] ... o.a.i.a.c.t.TaskManager :230 taskManager running! mem 0 total 0 new 0 running 0 frozen 0 finished 0 other 0

Agent 启动后即向 Manager 拉取任务并上报心跳(agent.fetcher.classname=ManagerFetcher),心跳数据写入 Manager 的 inlong_cluster_node 表。

4.7 启动 DataProxy

DataProxy 为二进制包内置模块,直接启动:

cd /opt/data/inlong/apache-inlong-2.4.0/inlong-dataproxy
mkdir -p logs
export DATAPROXY_JVM_HEAP_OPTS="-Xms256m -Xmx512m -XX:MaxDirectMemorySize=512m"
bin/dataproxy-start.sh pulsar

⚠️ 注意:实测首次启动若缺少 logs/ 目录,JVM 会因 GC 日志路径不存在而启动失败,报错 Error opening log file 'logs/dataproxy_gc_<pid>.log',先 mkdir -p logs 即可。

验证端口(实测):

(echo > /dev/tcp/127.0.0.1/46801) && echo "46801 OPEN"
(echo > /dev/tcp/127.0.0.1/46802) && echo "46802 OPEN"

实测回显:

46801 OPEN
46802 OPEN

进程确认(实测):

ps aux | grep org.apache.inlong.dataproxy.node.Application

4.8 启动 Audit

Audit 分 Proxy(审计数据接收)与 Store(审计数据入库/查询)两个进程,均为二进制包内置:

cd /opt/data/inlong/apache-inlong-2.4.0/inlong-audit
export AUDIT_JVM_HEAP_OPTS="-Xms256m -Xmx512m"
bin/proxy-start.sh
bin/store-start.sh

⚠️ 注意:bin/store-start.sh 通过 ls -lt lib | grep audit-store 定位主 jar,若解析失败(报 Invalid or corrupt jarfile .../lib/)可直接执行:

nohup $JAVA_HOME/bin/java -Xms256m -Xmx512m \
  -Daudit.log.path=/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/logs \
  -Dloader.path=/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/conf,/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/lib/ \
  -jar /opt/data/inlong/apache-inlong-2.4.0/inlong-audit/lib/audit-store-2.4.0.jar \
  1>/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/logs/store.log \
  2>/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/logs/store-error.log &

验证端口(实测):

(echo > /dev/tcp/127.0.0.1/10081) && echo "10081 OPEN"

实测回显:

10081 OPEN

Store 日志(实测节选,等待 Manager 下发 MQ 配置,属正常):

INFO  ... i.a.s.s.AuditMsgConsumerServer:168 start to request
http://127.0.0.1:8083/inlong/manager/openapi/audit/getConfig to get config info
with params AuditConfigRequest(clusterTag=default_cluster)
INFO  ... i.a.s.s.AuditMsgConsumerServer:142 MQ config may not be registered yet, wait for 5s and try again

五、配置说明

5.1 JVM 堆内存限制(256–512 MB)

InLong 各组件均含 Java 进程,官方脚本默认堆偏大,本文按规范统一限制为 -Xms256m -Xmx512m,修改方式如下:

组件控制变量默认值限制后值生效位置
ManagerMANAGER_JVM_HEAP_OPTS-Xms512m -Xmx1024m-Xms256m -Xmx512mbin/startup.sh 第 82–87 行
AgentAGENT_JVM_HEAP_OPTS-Xmx2048m -Xms512m-Xms256m -Xmx512mbin/agent-env.sh 中 HEAP_OPTS 分支
DataProxyDATAPROXY_JVM_HEAP_OPTS-Xms512m -Xmx1024m -XX:MaxDirectMemorySize=2048m-Xms256m -Xmx512m -XX:MaxDirectMemorySize=512mbin/dataproxy-ng 第 245–248 行
Audit Proxy/StoreAUDIT_JVM_HEAP_OPTS-Xms512m -Xmx1024m-Xms256m -Xmx512mbin/audit-proxy 第 106–109 行

修改方式示例(Manager,脚本内固定覆盖):

export MANAGER_JVM_HEAP_OPTS="-Xms256m -Xmx512m"

💡 说明:更持久的做法是直接修改启动脚本中的默认分支(如 startup.sh 第 83 行改为 HEAP_OPTS="-Xms256m -Xmx512m"),或把 export MANAGER_JVM_HEAP_OPTS=... 写入 /etc/profile.d/inlong.sh。验证生效值:

ps -ef | grep [j]ava | grep InlongManagerMain

实测回显:

root ... java -server -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -Xms256m -Xmx512m ...

5.2 全局配置 inlong.conf

安装目录顶层 conf/inlong.conf 定义各组件公共地址(实测默认值):

local_ip=127.0.0.1
mq_type=pulsar
spring_datasource_hostname=127.0.0.1
spring_datasource_port=3306
spring_datasource_username=root
spring_datasource_password=inlong
manager_server_hostname=127.0.0.1
manager_server_port=8083
dataproxy_port=46801
audit_service_ip=127.0.0.1
audit_service_port=10080
audit_proxy_port=10081

5.3 设置示例管理账号 admin / q1w2e3r4

登录密码在 Manager 数据库 user 表以 Shiro 1024 次迭代 SHA-256 存储。把 admin 密码改为 q1w2e3r4:

HASH=$(printf 'System.out.println(new org.apache.shiro.crypto.hash.SimpleHash("SHA-256","q1w2e3r4",null,1024).toHex());\n/exit\n' \
  | jshell --class-path /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib/shiro-core-1.13.0.jar 2>&1 \
  | grep -oE '[0-9a-f]{64}' | head -1)
mysql -uroot -pinlong -e "use apache_inlong_manager; update user set password='$HASH' where name='admin';"

⚠️ 注意:user 表用户名字段是 name,不是 username,写错会报 Unknown column 'username' in 'field list'(本文实测踩过)。

实测登录验证:

curl -s -c /tmp/inlong_cookie.txt -X POST \
  http://127.0.0.1:8083/inlong/manager/api/anno/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"q1w2e3r4"}'

实测回显:

{"success":true,"errMsg":null,"data":true}

5.4 获取 Agent 鉴权密钥

Agent 访问 Manager OpenAPI 需 secretId:secretKey(Basic 认证),secretId 为用户名,secretKey 为 user.secret_key 的 AES 解密值。conf/application.properties 中配置:

inlong.encrypt.version=1
inlong.encrypt.key.value1="I!N@L#O$N%G^"

AES 解密为:SHA1PRNG 随机种子派生 128 位密钥,AES/ECB 解密。本文实测 admin 的明文密钥为 87haw3VYTPqK5fK0,将其写入 inlong-agent/conf/agent.properties 的 agent.manager.auth.secretKey 后 Agent 才能完成心跳上报与任务拉取。

六、注意事项

  1. 组件启动顺序:MySQL → Manager → DataProxy/Audit → Agent。Agent 与 Audit Store 启动后会轮询 Manager 拉取配置,Manager 未就绪时仅告警重试,不阻塞启动。
  2. 2.4.0 二进制包模块缺失:官方 bin 包只含 DataProxy、Audit 与公共 lib,Manager/Agent 需源码编译(本文 4.3/4.6 已实测完整流程);如需开箱即用的完整二进制包,可选用 2.3.0 及更早版本或 Docker Compose 方式(见《Apache InLong Docker Compose 部署指南》)。
  3. MySQL 驱动可选依赖:Manager 的 lib/ 需手动放置 mysql-connector-j 驱动 jar,否则启动报 ClassNotFoundException: com.mysql.cj.jdbc.Driver。
  4. 端口占用:Manager 8083、DataProxy 46801/46802、Audit 10080/10081、Agent Prometheus 9080 需保证不被占用。
  5. JVM 堆:按 5.1 限制在 256–512 MB,勿沿用默认大堆,避免内存浪费。

七、常见问题(FAQ)

Q1:Manager 启动后 curl /actuator/health 返回 404?

InLong Manager 未启用 Spring Boot Actuator 端点,健康验证请用「五、5.3」的登录接口(返回 {"success":true,...} 即正常),或调用 GET /inlong/manager/api/user/getByName/admin(未登录返回 403 也属正常鉴权拦截,登录后返回用户信息)。

Q2:Manager 日志报 Unknown column 'username'?

user 表用户名字段为 name,SQL 应写 where name='admin'。

Q3:Manager 日志报 MySQL 驱动找不到?

执行 4.5 节 ⚠️ 中的驱动复制命令后重启。

Q4:DataProxy 启动即退出?

先 mkdir -p logs(GC 日志目录),并用 DATAPROXY_JVM_HEAP_OPTS 覆盖默认大堆。

Q5:Agent 日志报 mgrAuthSecretId is Blank!?

conf/agent.properties 未配置 agent.manager.auth.secretId/secretKey,按 5.4 配置后重启。

Q6:Audit Store 一直打印 MQ config may not be registered yet, wait for 5s and try again?

需要在 Manager 侧先登记消息队列集群(创建集群标签并绑定 Pulsar/Kafka 集群),Audit Store 才能拿到消费配置;未登记前属正常等待。

八、卸载方式

停止全部组件:

cd /opt/data/inlong/apache-inlong-2.4.0/inlong-agent && bin/agent.sh stop
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-dataproxy && bin/dataproxy-stop.sh
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-audit && bin/proxy-stop.sh && bin/store-stop.sh

⚠️ 注意:Manager 无官方 stop 脚本,按进程 PID 终止即可:

kill $(ps -ef | grep InlongManagerMain | grep -v grep | awk '{print $2}')

清理安装目录与数据:

rm -rf /opt/data/inlong/apache-inlong-2.4.0 /opt/data/inlong/src
mysql -uroot -pinlong -e "DROP DATABASE IF EXISTS apache_inlong_manager;"

九、参考链接