-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43008/#review117098
-----------------------------------------------------------



This is awesome! Assume this works for all execution engines? Left some 
comments.


ql/src/java/org/apache/hadoop/hive/ql/Driver.java (line 526)
<https://reviews.apache.org/r/43008/#comment178163>

    would it be useful to add a helper function "isWebUIEnabled()" vs checking 
if the port != 0?



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 46)
<https://reviews.apache.org/r/43008/#comment178168>

    should this be private? comment on what the key/values are and maybe rename 
to taskIdToTaskInfo?



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 49)
<https://reviews.apache.org/r/43008/#comment178165>

    Comment that this is set once the task completes.



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 69)
<https://reviews.apache.org/r/43008/#comment178164>

    I would expect updateTask() to take a Task object.
    
    Is this ever called?



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 93)
<https://reviews.apache.org/r/43008/#comment178171>

    Does this call (and a few other the others) need to be synchronized? Seems 
like their vals are all set once in the ctor.



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 126)
<https://reviews.apache.org/r/43008/#comment178178>

    newTask -> addTask()



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 130)
<https://reviews.apache.org/r/43008/#comment178166>

    Maybe setTaskCompleted()?



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 132)
<https://reviews.apache.org/r/43008/#comment178167>

    When would taskInfo be null? returnval wouldn't get set and the query would 
still show up as running.



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 141)
<https://reviews.apache.org/r/43008/#comment178169>

    just make this method synchronized?



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 169)
<https://reviews.apache.org/r/43008/#comment178180>

    for the methods that accept maps, comment on the expected key/value for the 
parameters.



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 189)
<https://reviews.apache.org/r/43008/#comment178179>

    clarify what "times" means. Consider having a single: 
setExecTimes(startTimes, endTimes) or something if you think both should always 
be set at the same time.



ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java (line 219)
<https://reviews.apache.org/r/43008/#comment178170>

    private static.
    "Unknown" -> "UNKNOWN"



service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java 
(line 26)
<https://reviews.apache.org/r/43008/#comment178172>

    Comment on thread safety.



service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java 
(line 53)
<https://reviews.apache.org/r/43008/#comment178175>

    Is this called? Looks like a dupe of close()



service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java 
(line 69)
<https://reviews.apache.org/r/43008/#comment178173>

    Do the calls that return state copied in the ctor need to be synchronized?



service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java 
(line 90)
<https://reviews.apache.org/r/43008/#comment178174>

    check that state != null?



service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java 
(line 98)
<https://reviews.apache.org/r/43008/#comment178176>

    setClosed()?



service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplayCache.java
 (line 26)
<https://reviews.apache.org/r/43008/#comment178177>

    Does this need to extend LinkedHashMap or can you just create an instance 
of one? Are removeEldestEntry and capacity used?


- Lenni Kuff


On Jan. 30, 2016, 2:53 a.m., Szehon Ho wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43008/
> -----------------------------------------------------------
> 
> (Updated Jan. 30, 2016, 2:53 a.m.)
> 
> 
> Review request for hive.
> 
> 
> Bugs: HIVE-12952
>     https://issues.apache.org/jira/browse/HIVE-12952
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> This patch shows a query sub-page on WebUI, with detailed information of 
> query on differnt tabs:
> 
> 1.  Tabl- Base Info, ie user, query string, query id, begin time, end time, 
> execution engine, error (if any)
> 2.  Tab2- Query Plan
> 3.  Tab3- Stages (MR jobs), their progress and info
> 4.  Tab4- Call trace info captured from HMSClient and PerfLogger.
> 
> Implementation notes:
> The UI design choices are inspired from Impala, and HBase.  This, like HBase 
> webui, uses Jamon, which is a superset of JSP and makes dynamic content a lot 
> easier.  As such, brought in jamon dependency and also js bootstrap libraries 
> to support the dynamic tabs.
> 
> On Hive side, refactored webui query logic into following classes:  
> SQLoperationDisplay (info captured from SQLOperation), QueryDisplay (info 
> captured from Driver).
> 
> 
> TODO:
> 1. Hard to get more MR job information for the stages including a 
> job-tracking url, due to MR JobSubmission being a separate process, need to 
> think about it.  Same for Spark/tez.
> 2. The explain plan might be a bit bulky and consume a bit of memory (though 
> can tune with "hive.server2.webui.max.historic.queries").  Perhaps in future 
> we can spill to local disk, and stream from there.  This might also help with 
> (1), if we don't want to implement inter-process communciations.
> 
> 
> Diffs
> -----
> 
>   common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java d4194cf 
>   common/src/java/org/apache/hive/http/HttpServer.java 9e23b11 
>   pom.xml 802d3d4 
>   ql/src/java/org/apache/hadoop/hive/ql/Driver.java 4c89812 
>   ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java PRE-CREATION 
>   ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java 0bab769 
>   service/pom.xml b2e3a84 
>   service/src/jamon/org/apache/hive/tmpl/QueryProfileTmpl.jamon PRE-CREATION 
>   service/src/java/org/apache/hive/service/cli/operation/Operation.java 
> 0c263cf 
>   
> service/src/java/org/apache/hive/service/cli/operation/OperationManager.java 
> f1ce6f6 
>   service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java 
> 01b1d3d 
>   
> service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java
>  PRE-CREATION 
>   
> service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplayCache.java
>  PRE-CREATION 
>   
> service/src/java/org/apache/hive/service/cli/operation/SQLOperationInfo.java 
> 179f6dd 
>   service/src/java/org/apache/hive/service/server/HiveServer2.java 958458f 
>   service/src/java/org/apache/hive/service/servlet/QueryProfileServlet.java 
> PRE-CREATION 
>   service/src/resources/hive-webapps/hiveserver2/hiveserver2.jsp a0b5d2e 
>   service/src/resources/hive-webapps/static/js/bootstrap.js PRE-CREATION 
>   service/src/resources/hive-webapps/static/js/bootstrap.min.js PRE-CREATION 
>   service/src/resources/hive-webapps/static/js/jquery.min.js PRE-CREATION 
>   service/src/resources/hive-webapps/static/js/tab.js PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/43008/diff/
> 
> 
> Testing
> -------
> 
> Manual testing.  Can add some unit tests in follow-up.
> 
> 
> Thanks,
> 
> Szehon Ho
> 
>

Reply via email to