[ https://issues.apache.org/jira/browse/HIVE-14342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16374205#comment-16374205 ]
George Smith edited comment on HIVE-14342 at 2/23/18 10:51 AM: --------------------------------------------------------------- Are you sure this has been fixed? We are using Cloudera distribution with HIVE-14342 bundled and I can confirm that cli.sh file contains check for unsupported terminal: {code} updateBeelineOpts() { # If process is backgrounded, don't change terminal settings if [[ ( ! $(ps -o stat= -p $$) =~ *+ ) && ! ( -p /dev/stdin ) ]]; then export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal" fi } {code} *Test case to reproduce:* _*test.hql content:*_ {code:sql} SELECT 1; {code} _*Bash command content:*_ {code:bash} $ beeline -u jdbc:hive2://xxxxxxx:10000 --silent=true --showWarnings=false --showNestedErrs=false --showHeader=false --outputformat=tsv2 -f ~/test.hql & wait [1] 3076126 null1 {code} I also tried to add this line before calling beeline: {code:java} export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal" {code} Nothing has changed. Please help. was (Author: cabot): Are you sure this has been fixed? We are using Cloudera distribution with HIVE-14342 bundled and I can confirm that cli.sh file contains check for unsupported terminal: {code} updateBeelineOpts() { # If process is backgrounded, don't change terminal settings if [[ ( ! $(ps -o stat= -p $$) =~ *+ ) && ! ( -p /dev/stdin ) ]]; then export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal" fi } {code} *Test case to reproduce:* _*test.hql content:*_ {code:java} SELECT 1; {code} {code:java} $ beeline -u jdbc:hive2://xxxxxxx:10000 --silent=true --showWarnings=false --showNestedErrs=false --showHeader=false --outputformat=tsv2 -f ~/test.hql & wait [1] 3076126 null1 {code} I also tried to add this line before calling beeline: {code:java} export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal" {code} Nothing has changed. Please help. > Beeline output is garbled when executed from a remote shell > ----------------------------------------------------------- > > Key: HIVE-14342 > URL: https://issues.apache.org/jira/browse/HIVE-14342 > Project: Hive > Issue Type: Bug > Components: Beeline > Affects Versions: 2.0.0 > Reporter: Naveen Gangam > Assignee: Naveen Gangam > Priority: Major > Fix For: 2.1.1, 2.2.0 > > Attachments: HIVE-14342.2.patch, HIVE-14342.patch, HIVE-14342.patch > > > {code} > use default; > create table clitest (key int, name String, value String); > insert into table clitest values > (1,"TRUE","1"),(2,"TRUE","1"),(3,"TRUE","1"),(4,"TRUE","1"),(5,"FALSE","0"),(6,"FALSE","0"),(7,"FALSE","0"); > {code} > then run a select query > {code} > # cat /tmp/select.sql > set hive.execution.engine=mr; > select key,name,value > from clitest > where value="1" limit 1; > {code} > Then run beeline via a remote shell, for example > {code} > $ ssh -l root <remotehost.domain.com> "sudo -u hive beeline -u > jdbc:hive2://localhost:10000 -n hive -p hive --silent=true > --outputformat=csv2 -f /tmp/select.sql" > root@<remoteHost.domain.com>'s password: > 16/07/12 14:59:22 WARN mapreduce.TableMapReduceUtil: The hbase-prefix-tree > module jar containing PrefixTreeCodec is not present. Continuing without it. > nullkey,name,value > 1,TRUE,1 > null > $ > {code} > In older releases that the output is as follows > {code} > $ ssh -l root <remoteHost.domain.com> "sudo -u hive beeline -u > jdbc:hive2://localhost:10000 -n hive -p hive --silent=true > --outputformat=csv2 -f /tmp/run.sql" > Are you sure you want to continue connecting (yes/no)? yes > root@<remoteHost.domain.com>'s password: > 16/07/12 14:57:55 WARN mapreduce.TableMapReduceUtil: The hbase-prefix-tree > module jar containing PrefixTreeCodec is not present. Continuing without it. > key,name,value > 1,TRUE,1 > $ > {code} > The output contains nulls instead of blank lines. This is due to the use of > -Djline.terminal=jline.UnsupportedTerminal introduced in HIVE-6758 to be able > to run beeline as a background process. But this is the unfortunate side > effect of that fix. > Running beeline in background also produces garbled output. > {code} > # beeline -u "jdbc:hive2://localhost:10000" -n hive -p hive --silent=true > --outputformat=csv2 --showHeader=false -f /tmp/run.sql 2>&1 > > /tmp/beeline.txt & > # cat /tmp/beeline.txt > null1,TRUE,1 > # > {code} > So I think the use of jline.UnsupportedTerminal should be documented but not > used automatically by beeline under the covers. -- This message was sent by Atlassian JIRA (v7.6.3#76005)