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 GobblinApache GobblinApache大数据运维2026/10/11

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.shGobblin 统一入口脚本(cli 子命令与 service 子命令)
gobblin-standalone.shstandalone 单机守护进程启停与状态查询
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 配置参数详解》。