----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/43008/ -----------------------------------------------------------
(Updated Feb. 2, 2016, 12:22 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 (updated) ----- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java ff376a8 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