wqwl611 opened a new issue, #9138:
URL: https://github.com/apache/hudi/issues/9138
**Describe the problem you faced**
I read a hive table (hive_A) to a dataframe(df).
then I df.write to a hudi table (hudi_B), but I got one exception "No
privilege 'Update' for hive_A", I can't understand it.
Exception in thread "main"
org.apache.hadoop.hive.ql.metadata.AuthorizationException: No privilege
'Update' found for outputs { database:hive_A.dbName, table:hive_A.tableName}
at
org.apache.hadoop.hive.ql.security.authorization.BitSetCheckedAuthorizationProvider.checkAndThrowAuthorizationException(BitSetCheckedAuthorizationProvider.java:486)
at
org.apache.hadoop.hive.ql.security.authorization.BitSetCheckedAuthorizationProvider.authorize(BitSetCheckedAuthorizationProvider.java:107)
at
org.apache.spark.sql.DiHiveAuthImpl.$anonfun$authorizeByV1$7(DiHiveAuthImpl.scala:67)
at
org.apache.spark.sql.DiHiveAuthImpl.$anonfun$authorizeByV1$7$adapted(DiHiveAuthImpl.scala:67)
at
org.apache.spark.sql.hive.DiHiveAuthUtil$.$anonfun$withThreadAuthorizer$1(DiHiveAuthUtil.scala:26)
at
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at
org.apache.spark.sql.hive.client.HiveClientImpl.$anonfun$withHiveState$1(HiveClientImpl.scala:294)
at
org.apache.spark.sql.hive.client.HiveClientImpl.liftedTree1$1(HiveClientImpl.scala:225)
at
org.apache.spark.sql.hive.client.HiveClientImpl.retryLocked(HiveClientImpl.scala:224)
at
org.apache.spark.sql.hive.client.HiveClientImpl.withHiveState(HiveClientImpl.scala:274)
at
org.apache.spark.sql.hive.DiHiveAuthUtil$.withThreadAuthorizer(DiHiveAuthUtil.scala:26)
at
org.apache.spark.sql.DiHiveAuthImpl.$anonfun$authorizeByV1$3(DiHiveAuthImpl.scala:67)
at scala.collection.Iterator.foreach(Iterator.scala:943)
at scala.collection.Iterator.foreach$(Iterator.scala:943)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
at
org.apache.spark.sql.DiHiveAuthImpl.authorizeByV1(DiHiveAuthImpl.scala:49)
at
com.ctrip.di.spark.planner.AuthorizePlannerStrategy.apply(AuthorizePlannerStrategy.scala:37)
at
org.apache.spark.sql.catalyst.planning.QueryPlanner.$anonfun$plan$1(QueryPlanner.scala:63)
at scala.collection.Iterator$$anon$11.nextCur(Iterator.scala:486)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:492)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:491)
at
org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
at
org.apache.spark.sql.execution.SparkStrategies.plan(SparkStrategies.scala:68)
at
org.apache.spark.sql.execution.QueryExecution$.createSparkPlan(QueryExecution.scala:480)
at
org.apache.spark.sql.execution.QueryExecution.$anonfun$sparkPlan$2(QueryExecution.scala:166)
at
org.apache.spark.sql.catalyst.QueryPlanningTracker.measurePhase(QueryPlanningTracker.scala:111)
at
org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$1(QueryExecution.scala:205)
at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)
at
org.apache.spark.sql.execution.QueryExecution.executePhase(QueryExecution.scala:205)
at
org.apache.spark.sql.execution.QueryExecution.$anonfun$sparkPlan$1(QueryExecution.scala:166)
at
org.apache.spark.sql.execution.QueryExecution.withCteMap(QueryExecution.scala:73)
at
org.apache.spark.sql.execution.QueryExecution.sparkPlan$lzycompute(QueryExecution.scala:159)
at
org.apache.spark.sql.execution.QueryExecution.sparkPlan(QueryExecution.scala:159)
at
org.apache.spark.sql.execution.QueryExecution.$anonfun$executedPlan$2(QueryExecution.scala:179)
at
org.apache.spark.sql.catalyst.QueryPlanningTracker.measurePhase(QueryPlanningTracker.scala:111)
at
org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$1(QueryExecution.scala:205)
at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)
at
org.apache.spark.sql.execution.QueryExecution.executePhase(QueryExecution.scala:205)
at
org.apache.spark.sql.execution.QueryExecution.$anonfun$executedPlan$1(QueryExecution.scala:179)
at
org.apache.spark.sql.execution.QueryExecution.withCteMap(QueryExecution.scala:73)
at
org.apache.spark.sql.execution.QueryExecution.executedPlan$lzycompute(QueryExecution.scala:172)
at
org.apache.spark.sql.execution.QueryExecution.executedPlan(QueryExecution.scala:172)
at
org.apache.spark.sql.execution.QueryExecution.simpleString(QueryExecution.scala:223)
at
org.apache.spark.sql.execution.QueryExecution.org$apache$spark$sql$execution$QueryExecution$$explainString(QueryExecution.scala:268)
at
org.apache.spark.sql.execution.QueryExecution.explainString(QueryExecution.scala:237)
at
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$6(SQLExecution.scala:108)
at
org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:177)
at
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:100)
at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)
at
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:65)
at
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:119)
at
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:115)
at
org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformDownWithPruning$1(TreeNode.scala:481)
at
org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:82)
at
org.apache.spark.sql.catalyst.trees.TreeNode.transformDownWithPruning(TreeNode.scala:481)
at
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.org$apache$spark$sql$catalyst$plans$logical$AnalysisHelper$$super$transformDownWithPruning(LogicalPlan.scala:30)
at
org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning(AnalysisHelper.scala:267)
at
org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning$(AnalysisHelper.scala:263)
at
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
at
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
at
org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:457)
at
org.apache.spark.sql.execution.QueryExecution.eagerlyExecuteCommands(QueryExecution.scala:115)
at
org.apache.spark.sql.execution.QueryExecution.commandExecuted$lzycompute(QueryExecution.scala:93)
at
org.apache.spark.sql.execution.QueryExecution.commandExecuted(QueryExecution.scala:91)
at
org.apache.spark.sql.execution.QueryExecution.assertCommandExecuted(QueryExecution.scala:137)
at
org.apache.spark.sql.DataFrameWriter.runCommand(DataFrameWriter.scala:848)
at
org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:382)
at
org.apache.spark.sql.DataFrameWriter.saveInternal(DataFrameWriter.scala:355)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:239)
at
com.ctrip.muise.spark.scala.apps.cdc.executor.BinlogToHudiTaskExecutor$.saveToMiddleHudiTable(BinlogToHudiTaskExecutor.scala:563)
at
com.ctrip.muise.spark.scala.tools.MergeFeaturesTool$.appendToHudi(MergeFeaturesTool.scala:89)
at
com.ctrip.muise.spark.scala.tools.MergeFeaturesTool$.$anonfun$main$1(MergeFeaturesTool.scala:111)
at
com.ctrip.muise.spark.scala.tools.MergeFeaturesTool$.$anonfun$main$1$adapted(MergeFeaturesTool.scala:110)
at scala.collection.immutable.List.foreach(List.scala:431)
at
com.ctrip.muise.spark.scala.tools.MergeFeaturesTool$.main(MergeFeaturesTool.scala:110)
at
com.ctrip.muise.spark.scala.tools.MergeFeaturesTool.main(MergeFeaturesTool.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
at
org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:993)
at
org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:181)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:204)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:91)
at
org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1081)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1090)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
**Expected behavior**
A clear and concise description of what you expected to happen.
**Environment Description**
* Hudi version : 0.11.1
* Spark version :3.2.0
* Hive version :
* Hadoop version :
* Storage (HDFS/S3/GCS..) :
* Running on Docker? (yes/no) :
**Additional context**
Add any other context about the problem here.
**Stacktrace**
```Add the stacktrace of the error.```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]