SPARK Application + HDFS + User Airflow 不是 inode=alapati 的所有者

SPARK Application + HDFS + User Airflow is not the owner of inode=alapati

我们是 运行 Hadoop 集群上的 spark 应用程序(HDP 版本 - 来自 Hortonworks 的 2.6.5)。

从日志中我们可以看到以下诊断

User: airflow
Application Type: SPARK
User class threw exception: org.apache.hadoop.security.AccessControlException: Permission denied. user=airflow is not the owner of inode=alapati

日志中没有明确提供我们需要在 HDFS 中搜索的内容,以便找到我们为何被拒绝的原因。

看起来 user=airflow 无权将数据写入 HDFS。

默认情况下,/user/ 目录由 "hdfs" 拥有,拥有 755 权限。结果只有 hdfs 可以写入该目录。

您可以使用两个选项:

  1. 将 spark 用户名从 airflow 更改为 hdfs

  2. 如果你还需要使用user=airflow,为airflow创建一个home目录

sudo -u hdfs hadoop fs -mkdir /user/airflow sudo -u hdfs hadoop fs -chown root /user/airflow