为什么 h2o 需要对 hdfs 根目录的写访问权限?

Why does h2o require write access on hdfs root directory?

看到错误消息

Job setup failed : org.apache.hadoop.security.AccessControlException: Permission denied: user=airflow, access=WRITE, inode="/":hdfs:hdfs:drwxr-xr-x at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:399) at ...

尝试连接以启动 h2o 集群 (h2o-3.28.0.1-hdp3.1) 时。也就是说,它似乎不喜欢 root hdfs 目录 hdfs:/// 对我的用户没有写权限(并且通过 ranger does 向我的用户授予写权限似乎可以修复问题),但这似乎是错误的。

来自 ,我已经看到启动用户没有对他们自己的 hdfs:///user/<username> 文件夹的写权限的情况,但对我来说似乎很奇怪 h2o 希望用户拥有对整个顶级 hdfs 目录的写访问权限。这是正常的吗?我可以更改吗?


可能相关:发现启动集群后,无法在YARN ResourceManager UI 中手动kill 或kill PID,而是需要到h2o 集群url 使用admin选项卡关闭集群。知道为什么会发生这种情况吗?

发现问题,现在找不到文档/other-post-detailing-this,但基本上,当运行 hadoop jar h2odriver.jar ... 命令时,有一个可选的 param called -output 你通常会把一些 hdfs location h2o 写东西的地方(据我所知,这是一些遗留目录不是特别重要)

我忘记了这是一个 HDFS 位置并放置了一些 local 临时文件夹的绝对路径。错误是因为 h2o 试图通过在 hdfs 中创建通向它的整个路径来创建该文件夹,因此需要能够从 hdfs 根目录写入。正确的值应该类似于 /user/<username>