获取以下错误堆栈:
无法在集群中创建 Spark 会话:在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:160) ) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120) 在 org.apache.spark.deploy 的 org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)。 SparkSubmit.main(SparkSubmit.scala) ) 在 org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:466) 在 org.apache.hadoop.hive.metastore.HiveMetaStoreClient.(HiveMetaStoreClient.java:234)在 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.(SessionHiveMetaStoreClient.java:74) ... 还有 35 个
我的理解应该启用 hive.server2.enable.impersonation 和 hive.server2.enable.doAs 以使 UserGroupInformation.doAs() 工作?
当我尝试启用这些参数时,Cloudera Manager 显示错误
为 Hive Server2 角色“HiveServer2(主机名)”启用了 Hive 模拟。应该禁用 Hive 模拟以使用 Sentry 启用 Hive 授权
所以 Spark-Hive 与 Sentry 发生冲突!?
环境:Hue 3.9 Spark Notebooks + Livy Server(由 master 构建)。CDH 5.5。
这是一个带有 Sentry 的 Kerberized 集群。
我使用hue的keytab,因为hue用户通常(默认情况下在CDH中)被允许模仿其他用户。Spark Notebooks 非常方便。
任何有助于解决此问题的信息将不胜感激。