后台无法执行beeline
原因:beeline 为了更好地展示漂亮的表格,使用 jline.Terminal.setupTerminal().getTerminalWidth() 获得终端的宽度,而该方法是通过调用 stty 来设置终端属性。当 beeline 以后台模式运行,调用 stty 时,内核的终端驱动程序在会发送一个 SIGTTOU 信号,该信号在没有被捕获进行特殊处理时,默认是中止当前进程。
后台模式运行 beeline 更多是因为通过编写脚本的方式来调用,因此对于表格格式,我们并不 care 它是否漂亮,而 jline 库提供 -Djline.terminal=jline.UnsupportedTerminal 参数,可以将终端类型设置为 UnsupportedTerminal,不再调用 stty ,进而避免了 beeline 以后台模式运行时,接收到 SIGTTOU 信号。
原文链接:https://blog.csdn.net/m0_47507068/article/details/107167830
解决办法
临时设置环境变量
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal"
通过脚本后台执行
#!/bin/bash
export /etc/profile
nohup beeline -u jdbc:hive2://172.25.90.16:50000 -n hadoop -f test.sql > log &
后台无法执行beeline
https://www.hechunyu.com/archives/1698222489306