kerberos环境hive查询是部分表可以查询,部分表显示kerberos权限问题

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】kerberos环境的hive,创建了hive catalog,查询hive表的时候,部分表可以查询,部分表就报错
ERROR 1064 (HY000): hdfsOpenFile failed, file=hdfs://nameservice1/user/hive/warehouse/dwd_crb.db/dwd_tpm_tp_protocoltermination_df/000001_0. err_msg: error=Error(13): Permission denied, root_cause=RemoteException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]: file = hdfs://nameservice1/user/hive/warehouse/dwd_crb.db/dwd_tpm_tp_protocoltermination_df/000001_0

Hive版本3.1.3,HDFS版本3.1.1,Hadoop版本3.1.1,详情看图片
【背景】做过哪些操作?
【业务影响】
【是否存算分离】
【StarRocks版本】StarRocks-3.1.11
【集群规模】3fe + 7be(fe与be混部)
【机器信息】
【联系方式】421529963@qq.com,谢谢
【附件】


我将hadoop_env.sh文件的export HADOOP_USER_NAME="hdfs"改为export HADOOP_USER_NAME=“hive”,重启该节点的fe和be,然后之前能访问的hive也不能访问了。
我又将该值改回export HADOOP_USER_NAME=“hdfs”,重启该节点的fe和be,还是访问不了,之前能 访问的hive表。现在所有的hive表都报错了。 :sob: :sob: :sob: :sob: :sob: :sob: :scream:
mysql> select * from fin_treasury_uat.dwd_chd_jwyj_commission_business_management_situation_4mi limit 10;
ERROR 1064 (HY000): hdfsOpenFile failed, file=hdfs://nameservice1/user/hive/warehouse/fin_treasury_uat.db/dwd_chd_jwyj_commission_business_management_situation_4mi/dt=20240731/000000_0. err_msg: error=Error(255): Unknown error 255, root_cause=AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]: file = hdfs://nameservice1/user/hive/warehouse/fin_treasury_uat.db/dwd_chd_jwyj_commission_business_management_situation_4mi/dt=20240731/000000_0

image
你这里填的keytab是hive这个账号的,这个普通账号对表下面的路径是不是没有访问权限呢,上面报权限问题了 hdfs://nameservice1/user/hive/warehouse/dwd_crb.db/dwd_tpm_tp_protocoltermination_df/000001_0. err_msg: error=Error(13): Permission denied,

您好,非常感谢您的协助。hive账号是有读取表的权限,我在hive库用hive账号查询这张变是没有问题的。

试一下在hive那边get这个hdfs路径呢

用hive账号可以get下来文件

core-site.xml
hdfs-site.xml
hive-site.xml
这三个文件,都配置对了吗? 在sr的机器上,执行
kinit -V -kt hive.keytab hive/admin@AOTAIN.COM
klist
都能成功吗?

按照你描述的部分表可以,偶发出现Permission denied,会不会是有些be节点配置不全?



三个文件应该没问题的,show databases和show tables 都没问题。
查询时候会报kerberos异常。

show 命令和use命令这种是不参与计算的,所以不会到达be,只要参与计算的就会到达be,咱们现在是计算就会偶发kerberos异常,这应该是be那里配置的有问题