[ https://issues.apache.org/jira/browse/HIVE-20549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16619697#comment-16619697 ]
Daniel Dai commented on HIVE-20549: ----------------------------------- In both scenario, killQuery will try to kill applicable yarn application. The difference is how to deal with exception if the operation found but belong to other user: * For queryId, it is clear, if operation found but belong to other user, Hive will throw "No privilege" exception * For queryTag, if there's duplicate tag, we need to deal with the case some operation belong to the user and some are not. The goal is to make non-duplicate use case more intuitive. If Hive find at least 1 operation belong to the user, then don't throw exception. For non-duplicate scenario, if the operation belong to the user, cancel the operation; If the operation belong to other user, throw "No privilege" exception. > Allow user set query tag, and kill query with tag > ------------------------------------------------- > > Key: HIVE-20549 > URL: https://issues.apache.org/jira/browse/HIVE-20549 > Project: Hive > Issue Type: Bug > Reporter: Daniel Dai > Assignee: Daniel Dai > Priority: Major > Fix For: 4.0.0, 3.2.0 > > Attachments: HIVE-20549.1.patch, HIVE-20549.2.patch > > > HIVE-19924 add capacity for replication job set a query tag and kill the > replication distcp job with the tag. Here I make it more general, user can > set arbitrary "hive.query.tag" in sql script, and kill query with the tag. > Hive will cancel the corresponding operation in hs2, along with Tez/MR > application launched for the query. For example: > {code} > set hive.query.tag=mytag; > select ..... -- long running query > {code} > In another session: > {code} > kill query 'mytag'; > {code} > There're limitations in the implementation: > 1. No tag duplication check. There's nothing to prevent conflicting tag for > same user, and kill query will kill queries share the same tag. However, kill > query will not kill queries from different user unless admin. So different > user might share the same tag > 2. In multiple hs2 environment, kill statement should be issued to all hs2 to > make sure the corresponding operation is canceled. When beeline/jdbc connects > to hs2 using regular way (zookeeper url), the session will connect to random > hs2, which might be different than the hs2 where query run on. User can use > HiveConnection.getAllUrls or beeline --getUrlsFromBeelineSite (HIVE-20507) to > get a list of all hs2 instances. -- This message was sent by Atlassian JIRA (v7.6.3#76005)