You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GNU parallel运行Beeline时第二条命令卡住故障咨询

根因分析

  • GNU Parallel 默认会将主进程的标准输入(stdin)重定向到每一个启动的子任务进程
  • beeline 作为交互式CLI客户端,即使已经通过 -e 参数指定了要执行的SQL语句,或是运行 --help 这类无需交互的命令,它仍然会主动尝试从 stdin 读取输入内容
  • 第一个 beeline 进程运行时会把 Parallel 传递的 stdin 数据全部读取完毕,第二个 beeline 进程启动后就会进入阻塞状态,无限等待 stdin 输入,所以会出现卡住的现象,该问题和Hive数据库连接逻辑完全无关。

修复方案

任选以下一种方案即可解决:

  1. 显式给beeline指定空输入源,禁止它读取当前会话的标准输入:
parallel -j1 --eta --verbose beeline -e '"SELECT \"{}\"";' < /dev/null ::: a b c
  1. 给GNU Parallel添加--no-stdin参数,要求Parallel不会向子任务传递任何标准输入内容(部分旧版本Parallel可替换为-n0参数实现相同效果):
parallel -j1 --eta --verbose --no-stdin beeline -e '"SELECT \"{}\"";' ::: a b c

内容的提问来源于stack exchange,提问作者Nightscape

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:27:04