2016-06-09 2 views
1

Я сделал заявку Докеры в контейнере Docker. Я намеревался сделать приложение доступным для доступа к файлам с нашего HDFS. Изображение Docker должно быть развернуто в том же кластере, где мы установили HDFS через Marathon-Mesos.Как монтировать HDFS в контейнере Docker

Ниже приведено сообщение json для отправки сообщения в марафон. Кажется, что мое приложение может читать и записывать файлы в HDFS. Может кто-нибудь прокомментировать безопасность этого? Могут ли файлы, измененные моим приложением, также правильно изменяться в HDFS? Я Googled вокруг и не обнаружили каких-либо подобных подходов ...

{ 
    "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.

В принципе, определение volumes в app.json бы вызвать начало изображения Докер с флагом -v /hadoop/hdfs-mount:/home:RW, а это означает, что хост путь получает отображается в контейнер Докер, как /home в режиме чтения-записи.

Вы должны быть в состоянии проверить это, если вы используете SSH в узле, на котором запущено приложение, и выполните команду docker inspect <containerId>.

Смотрите также

+0

Если мой Docker образ не настроен для записи файлов в HDFS (не установлен клиент Hadoop), может файлы по-прежнему будут правильно написаны в HDFS? –

Смежные вопросы