2016-06-09 345 views
1

我在Docker容器中制作了Docker化的应用程序。我打算让应用程序能够从我们的HDFS访问文件。 Docker镜像将部署在我们通过Marathon-Mesos安装HDFS的同一个群集上。如何在Docker容器中安装HDFS

下面是要发布到马拉松的json。看来我的应用程序能够读写HDFS中的文件。有人可以评论这个安全吗?我的应用程序中的文件是否会在HDFS中正确更改?我Google四周,没有发现任何类似的方法...

{ 
    "id": "/ipython-test", 
    "cmd": null, 
    "cpus": 1, 
    "mem": 1024, 
    "disk": 0, 
    "instances": 1, 
    "container": { 
    "type": "DOCKER", 
    "volumes": [ 
     { 
     "containerPath": "/home", 
     "hostPath": "/hadoop/hdfs-mount", 
     "mode": "RW" 
     } 
    ], 
    "docker": { 
     "image": "my/image", 
     "network": "BRIDGE", 
     "portMappings": [ 
     { 
      "containerPort": 8888, 
      "hostPort": 0, 
      "servicePort": 10061, 
      "protocol": "tcp", 
     } 
     ], 
     "privileged": false, 
     "parameters": [], 
     "forcePullImage": true 
    } 
    }, 
    "portDefinitions": [ 
    { 
     "port": 10061, 
     "protocol": "tcp", 
     "labels": {} 
    } 
    ] 
} 

回答

1

你可能有一个看Docker volume docs

基本上,在app.json的volumes定义将触发多克尔图像的开始与所述标志-v /hadoop/hdfs-mount:/home:RW,这意味着主机路径获取读写模式映射到多克尔容器作为/home

如果你SSH进入正在运行应用程序的节点并执行docker inspect <containerId>,你应该能够验证这一点。

+0

如果我的码头工人形象没有配置在HDFS(未安装Hadoop的客户),可以文件仍然正确地写在HDFS中写文件看到了吗? –