首页 > 解决方案 > 无法从 MapR Data Science Refinery docker 容器访问 HDFS

问题描述

尝试按照本文(https://mapr.com/blog/how-to-run-data-science-refinery-from-an-edge-node/)设置 DSR docker 映像(标签:v1.1_6. 0.0_4.1.0_centos7)在边缘节点上(有关如何设置一些 env.list 值的信息,请参见此处:https ://mapr.com/docs/61/AdvancedInstallation/Env_Variables_Installer_Container.html )。但是,一旦容器启动,

docker run --rm -it --env-file ./mapr-docker-env.list
--cap-add SYS_ADMIN --cap-add SYS_RESOURCE --device /dev/fuse -p 9995:9995
-p 10000-10010:10000-10010 -v /tmp/maprticket_10003:/tmp/dsr_ticket:ro -v
/sys/fs/cgroup:/sys/fs/cgroup:ro docker.io/maprtech/data-science-refinery
Container timezone will be set from value passed in MAPR_TZ:
....
....
....
opt/mapr/lib/baseutils*.jar:/opt/mapr/lib/maprutil*.jar:/opt/mapr/lib/json-1.8.jar:/opt/mapr/lib/flexjson-2.1.jar
org.apache.livy.server.LivyServer, logging to
/opt/mapr/livy/livy-0.5.0/logs/livy-myuser-server.out
Log dir doesn't exist, create /opt/mapr/zeppelin/zeppelin-0.8.0/logs
Zeppelin start                                             [  OK  ]

无法按预期从容器访问 MapR HDFS。IE。跑步

ls -lha /mapr/ourcluster.name.local/

从容器内,显示该位置不存在。然而,检查主机上的 maprticket 过期时间maprlogin print表明该票仍然有效,可用于从主机访问 HDFS(例如hadoop fs -ls /),并且已正确写入 env.list 文件。使用此 docker 映像的其他人是否知道这里发生了什么?

标签: mapr

解决方案


DSR 映像似乎有一个错误,即使在 env.list 文件中指定的 mapr SASL 票证存在并且有效,它在启动时也不会被复制到容器中。因此,容器无法连接到 MapR HDFS。为了解决这个问题,...

  1. 在 env.list 值中指定的容器上的相同位置创建了一个与票据文件同名的文件,指定票据文件的位置
  2. 手动将ticketfile的内容从主机复制粘贴到我们刚刚在docker容器中创建的ticket文件中
  3. (稍等片刻(~2 分钟))重新启动 mapr posix 服务:sudo service mapr-posix-client-container restart

完成此操作后,容器似乎能够正常访问 HDFS(并提交 YARN 作业)。

(如果有人有更多关于为什么会发生这种情况的信息,或者是否有更好的解决方法让容器按预期工作,请告诉我)。


推荐阅读