Apache Gobblin 0.17.0 常用 CLI 命令与工具详解
详解 Apache Gobblin 0.17.0 常用 CLI 命令与配套工具,覆盖 gobblin.sh 与 gobblin-standalone.sh 启停/状态、作业目录监测与提交、JVM 堆验证(jps/jmap)、端口与 Admin Web UI 检查、作业日志与输出校验,以及构建与源码校验命令。每条命令均给实测输入与回显,在 0.17.0 真实服务器环境实测通过。
Apache Gobblin 0.17.0 常用 CLI 命令与工具详解
目标:详解 Apache Gobblin 0.17.0 的常用 CLI 命令与配套工具,覆盖
gobblin.sh与gobblin-standalone.sh(start / stop / status)、作业目录监测与提交、JVM 堆验证(jps/jmap)、端口与 Admin Web UI 检查、作业日志与输出校验,以及构建与源码校验命令。每条命令均给出实测输入与回显,在 0.17.0 真实服务器环境实测通过。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS / CentOS 8(命令与 0.17.0 一致)
- 组件版本:Apache Gobblin 0.17.0
- CLI 脚本目录:
$GOBBLIN_HOME/bin(GOBBLIN_HOME=/opt/gobblin/gobblin-dist) - 运行模式:standalone(进程主类
org.apache.gobblin.scheduler.SchedulerDaemon) - 配套工具:
jps/jmap(JDK 自带)、ss、wget、diff、grep - 管理 UI:
http://localhost:9000/(Jetty Admin Web Server)
二、工具概览
| 工具 | 作用 |
|---|---|
gobblin.sh | Gobblin 统一入口脚本(cli 子命令与 service 子命令) |
gobblin-standalone.sh | standalone 单机守护进程启停与状态查询 |
jps + -v/-l | 查看 Java 进程主类与 JVM 实参(验证堆参数) |
jmap | 查看 JVM 堆内存详情(-heap) |
ss | 检查监听端口(9000 / 9090 等) |
wget | 访问 Admin Web UI,校验 HTTP 状态与页面标题 |
grep / diff | 检查作业日志与输出文件一致性 |
三、前置条件
- 已按《Ubuntu 22.04 安装 Apache Gobblin 0.17.0 指南》或《CentOS 8 安装 Apache Gobblin 0.17.0 指南》完成构建与解压
- 已
source /etc/profile.d/gobblin.sh(gobblin*脚本与java在 PATH) - 已规划
GOBBLIN_WORK_DIR(如/opt/gobblin/work)与GOBBLIN_JOB_CONFIG_DIR(如/opt/gobblin/jobs)
四、Gobblin 脚本命令详解
4.1 版本与帮助(gobblin.sh)
无参调用列出可用子命令并打印版本:
$GOBBLIN_HOME/bin/gobblin.sh 2>&1 | tail -3
实测回显:
gobblin.sh cli <cli-command> <params>
gobblin.sh service <execution-mode> <start|stop|restart|status>
Use "gobblin <cli|service> --help" for more information. (Gobblin Version: 0.17.0)
💡 说明:
gobblin.sh cli提供命令行作业工具,gobblin.sh service用于按执行模式(standalone / cluster-master / cluster-worker / yarn)管理服务生命周期。
4.2 服务生命周期(gobblin-standalone.sh start/stop/status)
启动 standalone(含 JVM 堆限定):
source /etc/profile.d/gobblin.sh
export GOBBLIN_WORK_DIR=/opt/gobblin/work
export GOBBLIN_JOB_CONFIG_DIR=/opt/gobblin/jobs
$GOBBLIN_HOME/bin/gobblin-standalone.sh start --jvmopts '-Xmx512m -Xms256m'
实测回显(关键行):
Started the Gobblin standalone process [pid: ...] ... [DONE]
查询状态:
$GOBBLIN_HOME/bin/gobblin-standalone.sh status
实测回显:
Gobblin standalone process is running... [ pid: 8757 ].
停止:
$GOBBLIN_HOME/bin/gobblin-standalone.sh stop
实测回显:进程退出、.gobblin-standalone.pid 被清理。
⚠️ 注意:
gobblin-standalone.sh start为后台守护启动,脚本默认JVM_OPTS='-Xmx1g -Xms512m',追加的--jvmopts '-Xmx512m -Xms256m'位于命令行尾部,最终生效堆上限为 512MB。
4.3 作业目录监测与提交
standalone 启动后按 jobconf.monitor.interval=30000 ms 轮询作业目录并自动加载。新增作业只需把 *.job 文件放入 $GOBBLIN_JOB_CONFIG_DIR:
ls -l /opt/gobblin/jobs/
实测回显(作业文件后缀必须为 .job 或 .pull):
-rw-r--r-- 1 root root 724 local-copy.job
确认作业被加载:
grep -E 'Loaded [0-9]+ job configurations' /opt/gobblin/gobblin-dist/logs/standalone.out | tail -1
实测回显:
2026-10-11 13:50:59 GMT INFO [JobScheduler STARTING] ... JobScheduler 539 - Loaded 1 job configurations
五、jps / jmap:进程与堆验证
列进程主类与 JVM 实参:
jps -l
jps -v | grep SchedulerDaemon
实测回显(-v 可见透传的堆参数,-Xmx512m 位于尾部):
8757 org.apache.gobblin.scheduler.SchedulerDaemon
8757 SchedulerDaemon -Xmx1g -Xms512m -Xmx512m -Dlog4j.configuration=file:///opt/gobblin/gobblin-dist/conf/standalone/log4j.xml -Dgobblin.logs.dir=/opt/gobblin/gobblin-dist/logs
查看堆内存详情:
jmap -heap 8757 | grep -i MaxHeapSize
实测回显:
MaxHeapSize = 536870912 (512.0MB)
💡 说明:
jps -l显示主类名SchedulerDaemon;jps -v的-Xmx/-Xms与jmap -heap的MaxHeapSize共同验证 JVM 堆(512MB)已生效。
六、端口与 Admin Web UI 检查
检查监听端口:
ss -ltnp | grep 9000
实测回显(Admin Web UI 监听 9000):
LISTEN 0 50 *:9000 *:* users:(("java",pid=8757,fd=...))
检查 HTTP 状态与页面标题:
wget -SqO- http://localhost:9000/ 2>&1 | grep -i 'HTTP/' | head -1
wget -qO- http://localhost:9000/ 2>/dev/null | grep -o '<title>.*</title>' | head -1
实测回显:
HTTP/1.1 200 OK
<title>Gobblin Admin</title>
⚠️ 注意:若日志报
Not launching the admin UI because the job execution info server is not enabled,说明job.execinfo.server.enabled未置true(详见《Apache Gobblin 0.17.0 配置参数详解》)。
七、作业日志与输出校验
查看作业执行结果(state SUCCESSFUL 表示每个 task 成功):
grep -E 'state SUCCESSFUL' /opt/gobblin/gobblin-dist/logs/standalone.out | tail -1
实测回显:
2026-10-11 13:51:00 GMT INFO [Task-committing-pool-1] LocalTaskStateTracker 131 - Task task_LocalFileCopyDemo_1791726659225_1 completed in 267ms with state SUCCESSFUL
比对输出与源数据:
ls -l /opt/gobblin/data/output/
diff -r /opt/gobblin/data/input /opt/gobblin/data/output && echo IDENTICAL
实测回显:
-rw-r--r-- 1 root root 31 a.txt
-rw-r--r-- 1 root root 17 b.txt
-rw-r--r-- 1 root root 19 c.txt
IDENTICAL
八、构建与源码校验命令
Java 与 Gradle 版本:
java -version
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 /opt/gradle/gradle-4.9/bin/gradle -version
实测回显:
openjdk version "1.8.0_504"
Gradle 4.9
JVM: 1.8.0_504 (Ubuntu 25.504-b01)
源码完整性校验:
sha512sum /opt/gobblin/apache-gobblin-sources-0.17.0.tgz | awk '{print $1}'
实测回显(与官方 .sha512 一致):
93467993f8047a1e6a82c6ac0e0843a7c3a222a917f4ef9a16d74c67f1262b00b4d672bc813e56473b569f9f08952a7870665a41215df71b5612e72afc248148
构建发行包:
cd /opt/gobblin/gobblin-0.17.0-src
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 /opt/gradle/gradle-4.9/bin/gradle \
:gobblin-distribution:buildDistributionTar -PgobblinFlavor=minimal
实测回显:
BUILD SUCCESSFUL in 2m 51s
九、注意事项
- 必须
source /etc/profile.d/gobblin.sh,否则gobblin*脚本与java不在 PATH。 - 作业文件后缀必须为
.job或.pull,.properties不被加载。 - JVM 堆建议 256–512MB,用
jps -v与jmap -heap复核-Xmx/-Xms生效。 - 每实例命令单独执行,避免并发启停导致 9000 端口占用。
- 构建须先配依赖镜像(jcenter 下线、LinkedIn jfrog 大 jar 并发失败),否则构建失败。
十、常见问题(FAQ)
Q1:gobblin-standalone.sh 找不到命令。
未 source /etc/profile.d/gobblin.sh,或 GOBBLIN_HOME 未指向含 bin 的安装目录。
Q2:status 显示未运行,但端口仍被占用。
旧 SchedulerDaemon 未退出,重启前确保旧进程已退出、删除 .gobblin-standalone.pid 后再 start。
Q3:start 后作业未被加载。
确认作业后缀为 .job(或 .pull),且 GOBBLIN_JOB_CONFIG_DIR 指向作业所在目录。
Q4:Web UI 打不开(wget http://localhost:9000/ 被拒)。
确认 job.execinfo.server.enabled=true 且 admin.server.port=9000,重启 standalone 后重试。
Q5:构建报 Could not find or load main class org.gradle.wrapper.GradleWrapperMain。
源码包剔除了 wrapper jar,改用独立安装的 Gradle 4.9(/opt/gradle/gradle-4.9/bin/gradle)。
十一、参考链接
- Apache Gobblin 官方归档:
https://archive.apache.org/dist/gobblin/apache-gobblin-0.17.0/ - Apache Gobblin 项目主页:
https://gobblin.apache.org/
系列其他文档:《Ubuntu 22.04 安装 Apache Gobblin 0.17.0 指南》《CentOS 8 安装 Apache Gobblin 0.17.0 指南》《Apache Gobblin 0.17.0 Docker Compose 部署指南》《Apache Gobblin 0.17.0 配置参数详解》。