You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "George Smith (JIRA)" <ji...@apache.org> on 2018/02/23 10:51:02 UTC

[jira] [Comment Edited] (HIVE-14342) Beeline output is garbled when executed from a remote shell

    [ 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:50 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: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.

 

 


was (Author: cabot):
Are you sure this has been fixed? We are using Cloudera distribution with HIVE-14342 bundled and I can confirm that beeline file contains check for

 

*Test case:*

_*test.hql content:*_


{code}
   SELECT 1;
{code}

{code}

$ 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}

 export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal"

{code}

Nothing has changed.

> 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)