本节描述的是老脚本(
datax-single/multiple/multiple-hive-job-starter.sh)的分发和日志行为。 老脚本已于 2026-04-23 批次 5 随工作 3 新入口落地整体删除(见 kb/92 changelog)。 本节作为老行为档案保留,给 kb/93 ADR-02(分布式归 DS worker group)提供历史背景。
分发在 bin/datax-single-job-starter.sh 这层;multiple-*-starter.sh 只是 for 循环调 single,每个 single 独立调 select_worker() 掷骰子(参数 -random 触发;缺省回退本机)。
单次 single-job-starter 执行 两次 ssh:
generate_job_config()(L67):ssh <worker> python3 ${BASE_DIR}/bin/datax-job-config-generator.py ... —— 在被选 worker 上生成 json,读的是该 worker 本地的 ini + datasource/<db_type>/<env>-<实例>.inirun_single_datax_job()(L267):ssh <worker> python3 /opt/datax/bin/datax.py <json> —— 在被选 worker 上跑 DataX JVM含义:所有 worker 节点必须同路径具备 项目代码 + datasource/ + /opt/datax + Python 解释器。本项目部署的 base_dir = /home/bigdata/release/poyee-data-warehouse/、datasource 路径 = /home/bigdata/release/datasource/(项目同级)。
-parallel)idea 控制台 ← ssh ← m2 bash ← ssh ← <worker> datax.py stdout
│
└─ tee → ${LOG_ROOT_DIR}/datax/.../<job>.log(m2 本地文件)
【查证 multiple-job-starter.sh:231】single-job-starter ... | tee "${LOG_FILE}":ssh 回传的 stdout 经 tee 同时写入 m2 本地日志文件 + 沿发起方 ssh 通道回到 idea 控制台。远端 DataX 日志在 idea 控制台完整可见,顺序打印。
-parallel)【查证 multiple-job-starter.sh:240】single-job-starter ... > "${LOG_FILE}" 2>&1 &:每个 single 后台跑 + stdout 重定向到独立文件,不经 tee、不回当前 shell。
${LOG_ROOT_DIR}/datax/.../<START_DATE>/<START_DATE>-<JOB_NAME>.log(不分散在各 worker)tail -f 独立日志文件并行模式触发三连:USER=bigdata + CURRENT_HOST=RELEASE_HOST + 显式 -parallel,任一缺失退串行。