ambari-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "JaySenSharma (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (AMBARI-18961) Ambari HiveView does not create or upload script in UTF-8 format
Date Wed, 25 Jan 2017 13:02:26 GMT

    [ https://issues.apache.org/jira/browse/AMBARI-18961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15837697#comment-15837697
] 

JaySenSharma edited comment on AMBARI-18961 at 1/25/17 1:01 PM:
----------------------------------------------------------------

On further analysis, This issue looks like more specific to "hive".

Following are the steps used to validate the same.
================================
Ambari 2.4.2 / Hive1.5 view / HDP 2.5.3
================================
In the Ambari Hive View executed the following query:
{code}
CREATE TABLE IF NOT EXISTS currency2 (id int, name string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES("serialization.encoding"='UTF-8','store.charset'='UTF-8', 'retrieve.charset'='UTF-8');

INSERT INTO currency2 VALUES (1, "£€₡");

SELECT * FROM currency2;
{code}

- Output from ambari side is attached as "Result.png"

Here we see that the queries were sent to the "hive" correctly as we see the following entries
appear in the "hiveserver2.log"
{code}
ssh root@hiveserevr2host
cd /var/log/hive
tail -f hiveserver2.log
{code}

Output of the log shows that hiveserver2 received the proper insert query statements from
Ambari Hive View.

{code}
2017-01-25 09:25:27,589 INFO  [HiveServer2-Handler-Pool: Thread-60]: parse.ParseDriver (ParseDriver.java:parse(185))
- Parsing command: INSERT INTO currency2 VALUES (1, "£€₡")

2017-01-25 09:25:28,337 INFO  [HiveServer2-Background-Pool: Thread-244]: exec.Task (TezTask.java:build(316))
- Dag name: INSERT INTO currency2 VALUES (1, "£€₡")(Stage-1)

2017-01-25 09:25:28,694 INFO  [HiveServer2-Background-Pool: Thread-244]: client.TezClient
(TezClient.java:submitDAGSession(577)) - Submitted dag to TezSession, sessionName=HIVE-bf038f08-853a-4850-80bc-7a6eaded3c2d,
applicationId=application_1485333705258_0007, dagName=INSERT INTO c
urrency1 VALUES (1, "£€₡")(Stage-1)
{code}

- Even the beeline fails to show the correct entry:
{code}
[root@erie3 ~]# su - hive

[hive@erie3 root]$ beeline
Beeline version 1.2.1000.2.5.3.0-37 by Apache Hive

beeline> !connect jdbc:hive2://erie3.example.com:2181,erie1.example.com:2181,erie4.example.com:2181,erie2.example.com:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2


0: jdbc:hive2://erie3.example.com:2181,erie1.> INSERT INTO currency2 VALUES (1, "£€₡");

0: jdbc:hive2://erie3.example.com:2181,erie1.> SELECT * FROM currency2;
+---------------+-----------------+--+
| currency2.id  | currency2.name  |
+---------------+-----------------+--+
| 1             | ���             |
+---------------+-----------------+--+
{code}
.


was (Author: jaysensharma):
On further analysis, This issue looks like more specific to "hive".

Following are the steps used to validate the same.
================================
Ambari 2.4.2 / Hive1.5 view / HDP 2.5.3
================================
In the Ambari Hive View executed the following query:
{code}
CREATE TABLE IF NOT EXISTS currency2 (id int, name string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES("serialization.encoding"='UTF-8','store.charset'='UTF-8', 'retrieve.charset'='UTF-8');

INSERT INTO currency2 VALUES (1, "£€₡");

SELECT * FROM currency2;
{code}

- Output from ambari side is attached as "Result.png"

Here we see that the queries were sent to the "hive" correctly as we see the following entries
appear in the "hiveserver2.log"
{code}
ssh root@hiveserevr2host
cd /var/log/hive
tail -f hiveserver2.log
{code}

Output of the log shows that hiveserver2 received the proper insert query statements from
Ambari Hive View.

2017-01-25 09:25:27,589 INFO  [HiveServer2-Handler-Pool: Thread-60]: parse.ParseDriver (ParseDriver.java:parse(185))
- Parsing command: INSERT INTO currency2 VALUES (1, "£€₡")

2017-01-25 09:25:28,337 INFO  [HiveServer2-Background-Pool: Thread-244]: exec.Task (TezTask.java:build(316))
- Dag name: INSERT INTO currency2 VALUES (1, "£€₡")(Stage-1)

2017-01-25 09:25:28,694 INFO  [HiveServer2-Background-Pool: Thread-244]: client.TezClient
(TezClient.java:submitDAGSession(577)) - Submitted dag to TezSession, sessionName=HIVE-bf038f08-853a-4850-80bc-7a6eaded3c2d,
applicationId=application_1485333705258_0007, dagName=INSERT INTO c
urrency1 VALUES (1, "£€₡")(Stage-1)

Still the beeline fails to show the correct entry:
{code}
[root@erie3 ~]# su - hive

[hive@erie3 root]$ beeline
Beeline version 1.2.1000.2.5.3.0-37 by Apache Hive

beeline> !connect jdbc:hive2://erie3.example.com:2181,erie1.example.com:2181,erie4.example.com:2181,erie2.example.com:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2


0: jdbc:hive2://erie3.example.com:2181,erie1.> INSERT INTO currency2 VALUES (1, "£€₡");

0: jdbc:hive2://erie3.example.com:2181,erie1.> SELECT * FROM currency2;
+---------------+-----------------+--+
| currency2.id  | currency2.name  |
+---------------+-----------------+--+
| 1             | ���             |
+---------------+-----------------+--+
{code}
.

> Ambari HiveView does not create or upload script in UTF-8 format
> ----------------------------------------------------------------
>
>                 Key: AMBARI-18961
>                 URL: https://issues.apache.org/jira/browse/AMBARI-18961
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-views
>    Affects Versions: 2.4.1
>         Environment: All
>            Reporter: JaySenSharma
>            Assignee: JaySenSharma
>             Fix For: 2.5.0
>
>         Attachments: AMBARI-18961.patch
>
>
> - When we run an insert query with some special character in the Hive (Hive-next) View
then we see that the values are not being reflected properly.  The special characters are
being replaced with  "?"
> Example:
> {code}
> CREATE table test (id int, name string);
> insert into test values (100, "€");
> insert into test values (200, "$");
> insert into test values (300, "£");
> insert into test values (400, "₡");
> SELECT * FROM test LIMIT 100;
> {code}
> - Once the above script is executed then we will see the output something like "HiveView_UTF-8_Issue.png"
(attached)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message