hive git commit: HIVE-20091: Tez: Add security credentials for FileSinkOperator output (Matt McCline, reviewed by Gunther Hagleitner)
Repository: hive Updated Branches: refs/heads/branch-3 e827e0382 -> 431c92d19 HIVE-20091: Tez: Add security credentials for FileSinkOperator output (Matt McCline, reviewed by Gunther Hagleitner) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/431c92d1 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/431c92d1 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/431c92d1 Branch: refs/heads/branch-3 Commit: 431c92d199ca54e4f6df046056ae01e22b82e70d Parents: e827e03 Author: Matt McCline Authored: Thu Jul 12 13:46:05 2018 -0500 Committer: Matt McCline Committed: Thu Jul 12 13:47:33 2018 -0500 -- .../hadoop/hive/ql/exec/tez/DagUtils.java | 101 ++- 1 file changed, 98 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/431c92d1/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java -- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java index 0e75f6e..de0abd1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java @@ -18,12 +18,13 @@ package org.apache.hadoop.hive.ql.exec.tez; import java.util.Collection; - import java.util.concurrent.ConcurrentHashMap; + import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Iterators; import com.google.common.collect.Lists; + import javax.security.auth.login.LoginException; import java.io.File; @@ -37,9 +38,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Stack; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -65,6 +68,7 @@ import org.apache.hadoop.hive.conf.HiveConf.ConfVars; import org.apache.hadoop.hive.ql.Context; import org.apache.hadoop.hive.ql.ErrorMsg; import org.apache.hadoop.hive.ql.QueryPlan; +import org.apache.hadoop.hive.ql.exec.FileSinkOperator; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.Utilities; import org.apache.hadoop.hive.ql.exec.mr.ExecMapper; @@ -79,10 +83,22 @@ import org.apache.hadoop.hive.ql.io.HiveOutputFormatImpl; import org.apache.hadoop.hive.ql.io.merge.MergeFileMapper; import org.apache.hadoop.hive.ql.io.merge.MergeFileOutputFormat; import org.apache.hadoop.hive.ql.io.merge.MergeFileWork; +import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker; +import org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher; +import org.apache.hadoop.hive.ql.lib.Dispatcher; +import org.apache.hadoop.hive.ql.lib.GraphWalker; +import org.apache.hadoop.hive.ql.lib.Node; +import org.apache.hadoop.hive.ql.lib.NodeProcessor; +import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; +import org.apache.hadoop.hive.ql.lib.Rule; +import org.apache.hadoop.hive.ql.lib.RuleRegExp; import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.parse.SemanticException; import org.apache.hadoop.hive.ql.plan.BaseWork; +import org.apache.hadoop.hive.ql.plan.FileSinkDesc; import org.apache.hadoop.hive.ql.plan.MapWork; import org.apache.hadoop.hive.ql.plan.MergeJoinWork; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; import org.apache.hadoop.hive.ql.plan.ReduceWork; import org.apache.hadoop.hive.ql.plan.TezEdgeProperty; import org.apache.hadoop.hive.ql.plan.TezEdgeProperty.EdgeType; @@ -169,6 +185,57 @@ public class DagUtils { */ private final ConcurrentHashMap copyNotifiers = new ConcurrentHashMap<>(); + class CollectFileSinkUrisNodeProcessor implements NodeProcessor { + +private final Set uris; + +public CollectFileSinkUrisNodeProcessor(Set uris) { + this.uris = uris; +} + +@Override +public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, +Object... nodeOutputs) throws SemanticException { + for (Node n : stack) { +Operator op = (Operator) n; +OperatorDesc desc = op.getConf(); +if (desc instanceof FileSinkDesc) { + FileSinkDesc fileSinkDesc = (FileSinkDesc) desc; + Path dirName = fileSinkDesc.getDirName(); + if (dirName != null) { +uris.add(dirName.toUri()); + } + Path destPath = fileSinkDesc.getDestPath(); + if (destPath != null) { +uris.add(destPath.toUri()); + } +} + } + return null; +} + } + + private void addCollectFileSinkUrisRules(Map opRules, NodeProcessor np) { +
hive git commit: HIVE-20091: Tez: Add security credentials for FileSinkOperator output (Matt McCline, reviewed by Gunther Hagleitner)
Repository: hive Updated Branches: refs/heads/master e0c2b9d97 -> 3fa7f0c6e HIVE-20091: Tez: Add security credentials for FileSinkOperator output (Matt McCline, reviewed by Gunther Hagleitner) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3fa7f0c6 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3fa7f0c6 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3fa7f0c6 Branch: refs/heads/master Commit: 3fa7f0c6e5a42d0e1fc7fb7bb8c2d7b1a86acee8 Parents: e0c2b9d Author: Matt McCline Authored: Thu Jul 12 13:46:05 2018 -0500 Committer: Matt McCline Committed: Thu Jul 12 13:46:05 2018 -0500 -- .../hadoop/hive/ql/exec/tez/DagUtils.java | 101 ++- 1 file changed, 98 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/3fa7f0c6/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java -- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java index 0e75f6e..de0abd1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java @@ -18,12 +18,13 @@ package org.apache.hadoop.hive.ql.exec.tez; import java.util.Collection; - import java.util.concurrent.ConcurrentHashMap; + import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Iterators; import com.google.common.collect.Lists; + import javax.security.auth.login.LoginException; import java.io.File; @@ -37,9 +38,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Stack; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -65,6 +68,7 @@ import org.apache.hadoop.hive.conf.HiveConf.ConfVars; import org.apache.hadoop.hive.ql.Context; import org.apache.hadoop.hive.ql.ErrorMsg; import org.apache.hadoop.hive.ql.QueryPlan; +import org.apache.hadoop.hive.ql.exec.FileSinkOperator; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.Utilities; import org.apache.hadoop.hive.ql.exec.mr.ExecMapper; @@ -79,10 +83,22 @@ import org.apache.hadoop.hive.ql.io.HiveOutputFormatImpl; import org.apache.hadoop.hive.ql.io.merge.MergeFileMapper; import org.apache.hadoop.hive.ql.io.merge.MergeFileOutputFormat; import org.apache.hadoop.hive.ql.io.merge.MergeFileWork; +import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker; +import org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher; +import org.apache.hadoop.hive.ql.lib.Dispatcher; +import org.apache.hadoop.hive.ql.lib.GraphWalker; +import org.apache.hadoop.hive.ql.lib.Node; +import org.apache.hadoop.hive.ql.lib.NodeProcessor; +import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; +import org.apache.hadoop.hive.ql.lib.Rule; +import org.apache.hadoop.hive.ql.lib.RuleRegExp; import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.parse.SemanticException; import org.apache.hadoop.hive.ql.plan.BaseWork; +import org.apache.hadoop.hive.ql.plan.FileSinkDesc; import org.apache.hadoop.hive.ql.plan.MapWork; import org.apache.hadoop.hive.ql.plan.MergeJoinWork; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; import org.apache.hadoop.hive.ql.plan.ReduceWork; import org.apache.hadoop.hive.ql.plan.TezEdgeProperty; import org.apache.hadoop.hive.ql.plan.TezEdgeProperty.EdgeType; @@ -169,6 +185,57 @@ public class DagUtils { */ private final ConcurrentHashMap copyNotifiers = new ConcurrentHashMap<>(); + class CollectFileSinkUrisNodeProcessor implements NodeProcessor { + +private final Set uris; + +public CollectFileSinkUrisNodeProcessor(Set uris) { + this.uris = uris; +} + +@Override +public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, +Object... nodeOutputs) throws SemanticException { + for (Node n : stack) { +Operator op = (Operator) n; +OperatorDesc desc = op.getConf(); +if (desc instanceof FileSinkDesc) { + FileSinkDesc fileSinkDesc = (FileSinkDesc) desc; + Path dirName = fileSinkDesc.getDirName(); + if (dirName != null) { +uris.add(dirName.toUri()); + } + Path destPath = fileSinkDesc.getDestPath(); + if (destPath != null) { +uris.add(destPath.toUri()); + } +} + } + return null; +} + } + + private void addCollectFileSinkUrisRules(Map opRules, NodeProcessor np) { +