Details
Description
In kerberos cluster, when use spark-sql or beeline to create table, the owner will be whole info of principal. the issue was fixed in SPARK-19970 and modify by SPARK-22846, so it occur again. It will causes some problems when using role., and this time should resolved two issues together.
Use org.apache.hadoop.hive.shims.Utils.getUGI directly to get ugi.getShortUserName
instead of use conf.getUser which return principal info.
Code change
private val userName: String = try { val ugi = HiveUtils.getUGI ugi.getShortUserName } catch { case e: LoginException => throw new IOException(e) }
Berfore
scala> sql("create table t(a int)").show scala> sql("desc formatted t").show(false) ... |Owner:|spark@EXAMPLE.COM| |
After:
scala> sql("create table t(a int)").show scala> sql("desc formatted t").show(false) ... |Owner:|spark| |
Attachments
Issue Links
- is duplicated by
-
SPARK-28559 when execute "create table" on ThriftServer ,the hive table owner is wrong
- Resolved
- links to