存算分离集群执行drop table xx froce无法删除HDFS文件

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】存算分离集群下无法删除HDFS文件
【背景】执行drop table xx froce
【业务影响】HDFS文件无法以被清理
【是否存算分离】存算分离
【StarRocks版本】V3.3.0版本
【集群规模】1fe(1 follower)+1cn(fe与cn混部)
CDH版本(开启了kerberos认证):
CDH 6.3.2
Apache Hadoop 3.0.0

【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【联系方式】
【附件】

  1. 部署细节
    1.1 设置hadoop_env.sh HADOOP_USER_NAME=hdfs
    1.2 同步了hadoop的配置文件hdfs-site.xml, core-site.xml文件到be,fe conf目录下
    1.3 同步kerberos相关文件到fe cn机器上
    1.4 同步了hdfs集群的host到fe cn机器上
    1.4 fe.conf 添加JAVA启动参数 -Djava.security.krb5.conf=/etc/krb5.conf -Dhadoop.kerberos.keytab.login.autorenewal.enabled=true
    1.5 cn.conf 添加JAVA启动参数 -Djava.security.krb5.conf=/etc/krb5.conf -Dhadoop.kerberos.keytab.login.autorenewal.enabled=true
    1.6 配置环境变量:
    export KRB5KEYTAB=/app/krb5/hdfs.keytab
    export KRB5PRINCIPAL=hdfs@xxxxx.COM.CN
    1.7 配置定时任务刷新kerberos ticket
    0 15 * * * kinit -c /app/krb5/ticket/krb5cc_sr_001 -kt /app/krb5/hdfs.keytab hdfs@xxxxx.COM.CN

  2. 存算分离集群部署后,创建默认的STORAGE VOLUME
    CREATE STORAGE VOLUME def_volume
    TYPE = HDFS
    LOCATIONS = (“hdfs://nameservice1/user/starrocks/sr_001”)
    PROPERTIES(
    “dfs.nameservices” = “nameservice1”,
    “dfs.ha.namenodes.nameservice1” = “namenode139,namenode315”,
    “dfs.namenode.rpc-address.nameservice1.namenode139” = “hdfs27:8020”,
    “dfs.namenode.rpc-address.nameservice1.namenode315” = “hdfs28:8020”,
    “dfs.namenode.http-address.nameservice1.namenode139” = “hdfs27:9870”,
    “dfs.namenode.http-address.nameservice1.namenode315” = “hdfs28:9870”,
    “dfs.client.failover.proxy.provider.nameservice1” = “org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider”,
    “hadoop.security.authentication” = “kerberos”,
    “hadoop.security.kerberos.ticket.cache.path” = “/app/krb5/ticket/krb5cc_sr_001”
    );

  3. 正常创建数据库,表,做数据测试
    CREATE TABLE IF NOT EXISTS p_orders10
    (
    create_time DATE NOT NULL COMMENT “create time of an order”,
    order_id BIGINT NOT NULL COMMENT “id of an order”,
    order_state string COMMENT “state of an order”,
    total_price BIGINT COMMENT “price of an order”
    ) UNIQUE KEY(create_time, order_id)
    PARTITION BY date_trunc(‘day’, create_time)
    DISTRIBUTED BY HASH(order_id) BUCKETS 2
    PROPERTIES (
    “datacache.enable” = “true”,
    “datacache.partition_duration” = “1 MONTH”,
    “enable_async_write_back” = “false”
    );

insert into p_orders10 values (date’2024-04-08’, 123456, ‘orders’, 100);
insert into p_orders10 values (date’2024-04-08’, 1234567, ‘orders’, 100);

到这里都是可以正常创建表,插入数据,也确认了hdfs集群也是有正常的元数据,数据文件生成的

  1. 测试正常的表,库删除

drop table xx froce

到这里删除库,表也是正常的,对应hdfs文件系统上的文件和元数据信息也被清理了

  1. 过了1到2天,再执行删除表,库的操作

这里发现删除表和库的时候,cn.out有大量kerberos相关的报错信息,HDFS文件系统上的数据也没有被清理

备注:如果重启了CN,再执行以上操作, 又是正常的,目前怀疑是kerberos ticket过期后,就没有办法再操作hdfs文件系统上的数据了