h2o - H2O Hadoop 需要访问用户 hdfs 的 HDFS 主文件夹?
问题描述
由于访问限制,在 hdp 3.1.4 上运行 h2o ( http://h2o-release.s3.amazonaws.com/h2o/rel-yau/5/h2o-3.26.0.5-hdp3.1.zip ) 在启动时出错到hdfs:///user/hdfs
文件夹
[root@HW005 h2o-3.26.0.5-hdp3.1]# hadoop jar h2odriver.jar -nodes 4 -mapperXmx 6g
Determining driver host interface for mapper->driver callback...
[Possible callback IP address: 172.18.4.83]
[Possible callback IP address: 127.0.0.1]
Using mapper->driver callback IP address and port: 172.18.4.83:37342
(You can override these with -driverif and -driverport/-driverportrange and/or specify external IP using -extdriverif.)
Memory Settings:
mapreduce.map.java.opts: -Xms6g -Xmx6g -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dlog4j.defaultInitOverride=true
Extra memory percent: 10
mapreduce.map.memory.mb: 6758
Hive driver not present, not generating token.
19/09/17 10:38:17 INFO client.RMProxy: Connecting to ResourceManager at hw001.co.local/172.18.4.46:8050
19/09/17 10:38:17 INFO client.AHSProxy: Connecting to Application History server at hw002.co.local/172.18.4.47:10200
ERROR: Permission denied: user=root, access=WRITE, inode="/user":hdfs:hdfs:drwxr-xr-x
这似乎很奇怪,因为我想根据用例以各种不同的用户身份运行 h2o,而且我认为只授予 hdfs 用户的访问权限是不正确的(HDP 默认 HDFS 管理员用户) HDFS 主文件夹以执行此操作。谁能解释这里发生了什么以及通常如何处理?
解决方案
如何在非 Kerberized Hadoop 集群中管理模拟,用于...
* 为任意 Hadoop 用户创建 HDFS HomeDir
* 在该用户下运行作业(将对临时文件使用 HomeDir)
## create HDFS HomeDir for new user, with "hdfs" privileged account
## note the workaround for the bug in "chmod" parser which
## fails on "=<nothing>" in most Hadoop versions
export HADOOP_USER_NAME=hdfs
hdfs dfs -mkdir -p /user/zorro
hdfs dfs -chown zorro:zorro /user/zorro
hdfs dfs -chmod u=rwx,g=rx,o-rwx /user/zorro
unset HADOOP_USER_NAME
export HADOOP_USER_NAME=zorro
# just to check who's there
hdfs groups
run-my-H2O-job-on-command-line
unset HADOOP_USER_NAME
推荐阅读
- r - 如何在 R 中为特定 id 添加随机观察
- yolov5 - 经过训练的 yolov5s.pt 的大小比预期的要大得多
- android - 字体系列时Android Chrome缺少波兰语符号:衬线
- c# - 如何正确使用鼠标在一个轴上旋转 2D 对象
- python - COM 对象在其他线程上编组后与服务器断开连接
- database - 在线“上传”程序
- sapui5 - 加载 UI5 片段
- c# - 运行多个使用 Wiremock 的集成测试
- elixir - Elixir Phoenix:我可以从模板中调用上下文函数吗?我应该
- terminal - 从终端列出pgadmin中用户的所有电子邮件地址?