[ 
https://issues.apache.org/jira/browse/HIVE-28579?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitriy Fingerman updated HIVE-28579:
-------------------------------------
    Description: 
Hive operational log is a query log that contains messages for a specific query 
id and is intended for Hive clients.
When operational log is enabled, it shows exception stack traces and other 
messages in Hue and Beeline (see screenshot attached).
Hive clients fetch the operational log using Hive-specific jdbc method 
*HiveStatement.getQueryLog.*

Currently, when '{*}hive.server2.async.exec.async.compile{*}' {*}= 
'{*}{*}true{*}' and an exception happens, an operational log is not displayed 
in Beeline and Hue (because stmtHandle is empty) and only exception message is 
displayed.

When *'hive.server2.async.exec.async.compile' = 'false'* and operational log 
level != 'NONE'{*},{*} operational log is displayed with exception stack trace 
in Beeline and Hue and also exception message is displayed.

The following settings control operational log behavior:
 * {*}Hive.server2.logging.operation.enabled{*}: ** true/false (true by default)
 * {*}hive.server2.logging.operation.level{*}:

 * 
 **  NONE:     Ignore any logging
 **  EXECUTION:   Log completion of tasks
 **  PERFORMANCE: Execution + Performance logs
 **  VERBOSE:     All logs
 * Log level can be changed on session level.
 * Upstream and downstream the default log level is {{{}EXECUTION{}}}, which 
displays exception stack traces which is not good as a default for 
non-technical users.

End-users do not need to see exception stack traces by default, but when a 
query fails they should know Query ID, because using one they can find stack 
traces and other info in HiveServer2 log.

Proposing to change *hive.server2.logging.operation.level* {{to NONE by default 
and to add Query ID to HiveSQLException when the level is NONE or when 
'hive.server2.async.exec.async.compile' = true, because in these 2 cases the 
operational log is not displayed.}}

 

  was:
Hive operational log is a query log that contains messages for a specific query 
id and is intended for Hive clients.

When operational log is enabled, it shows exception stack traces and other 
messages in Hue and Beeline (see screenshot attached).

Hive clients fetches the operational log using Hive-specific jdbc method 
*HiveStatement.getQueryLog.*

Currently, when '{*}hive.server2.async.exec.async.compile{*}' {*}= 
'{*}{*}true{*}' and an exception happens, an operational log is not displayed 
in Beeline and Hue (because stmtHandle is empty) and only exception message is 
displayed.

When *'hive.server2.async.exec.async.compile' = 'false'* and operational log 
level != 'NONE'{*},{*} operational log is displayed with exception stack trace 
in Beeline and Hue and also exception message is displayed.

The following settings control operational log behavior:
 * {*}Hive.server2.logging.operation.enabled{*}: ** true/false (true by default)
 * {*}hive.server2.logging.operation.level{*}:

 * 
 **  NONE:     Ignore any logging
 **  EXECUTION:   Log completion of tasks
 **  PERFORMANCE: Execution + Performance logs
 **  VERBOSE:     All logs
 * Log level can be changed on session level.
 * Upstream and downstream the default log level is {{{}EXECUTION{}}}, which 
displays exception stack traces which is not good as a default for 
non-technical users.

End-users do not need to see exception stack traces by default, but when a 
query fails they should know Query ID, because using one they can find stack 
traces and other info in HiveServer2 log.

Proposing to change *hive.server2.logging.operation.level* {{to NONE by default 
and to add Query ID to HiveSQLException when the level is NONE or when 
'hive.server2.async.exec.async.compile' = true, because in these 2 cases the 
operational log is not displayed.}}

 


> Unify operational log behavior
> ------------------------------
>
>                 Key: HIVE-28579
>                 URL: https://issues.apache.org/jira/browse/HIVE-28579
>             Project: Hive
>          Issue Type: Improvement
>      Security Level: Public(Viewable by anyone) 
>            Reporter: Dmitriy Fingerman
>            Assignee: Dmitriy Fingerman
>            Priority: Major
>         Attachments: Screenshot 2024-10-23 at 5.54.03 PM.png
>
>
> Hive operational log is a query log that contains messages for a specific 
> query id and is intended for Hive clients.
> When operational log is enabled, it shows exception stack traces and other 
> messages in Hue and Beeline (see screenshot attached).
> Hive clients fetch the operational log using Hive-specific jdbc method 
> *HiveStatement.getQueryLog.*
> Currently, when '{*}hive.server2.async.exec.async.compile{*}' {*}= 
> '{*}{*}true{*}' and an exception happens, an operational log is not displayed 
> in Beeline and Hue (because stmtHandle is empty) and only exception message 
> is displayed.
> When *'hive.server2.async.exec.async.compile' = 'false'* and operational log 
> level != 'NONE'{*},{*} operational log is displayed with exception stack 
> trace in Beeline and Hue and also exception message is displayed.
> The following settings control operational log behavior:
>  * {*}Hive.server2.logging.operation.enabled{*}: ** true/false (true by 
> default)
>  * {*}hive.server2.logging.operation.level{*}:
>  * 
>  **  NONE:     Ignore any logging
>  **  EXECUTION:   Log completion of tasks
>  **  PERFORMANCE: Execution + Performance logs
>  **  VERBOSE:     All logs
>  * Log level can be changed on session level.
>  * Upstream and downstream the default log level is {{{}EXECUTION{}}}, which 
> displays exception stack traces which is not good as a default for 
> non-technical users.
> End-users do not need to see exception stack traces by default, but when a 
> query fails they should know Query ID, because using one they can find stack 
> traces and other info in HiveServer2 log.
> Proposing to change *hive.server2.logging.operation.level* {{to NONE by 
> default and to add Query ID to HiveSQLException when the level is NONE or 
> when 'hive.server2.async.exec.async.compile' = true, because in these 2 cases 
> the operational log is not displayed.}}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to