无法从 MapR Data Science Refinery docker 容器访问 HDFS

Cannot access HDFS from MapR Data Science Refinery docker container

正在尝试关注这篇文章 (https://mapr.com/blog/how-to-run-data-science-refinery-from-an-edge-node/) for setting up DSR docker image (tag: v1.1_6.0.0_4.1.0_centos7) on an edge node (see here for how to set some of the env.list values: 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 图片的其他人知道这里发生了什么吗?

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

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

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

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