2016-06-09 2 views
1

Docker 컨테이너에서 Dockerized 어플리케이션을 만들었습니다. 응용 프로그램에서 HDFS의 파일에 액세스 할 수있게하려고했습니다. Docker 이미지는 Marathon-Mesos를 통해 HDFS가 설치된 동일한 클러스터에 배포됩니다.Docker 컨테이너에 HDFS를 마운트하는 방법

아래는 마라톤에 POST가 될 json입니다. 내 응용 프로그램은 HDFS에서 파일을 읽고 쓸 수있는 것 같습니다. 누군가가 이것의 안전에 대해 언급 할 수 있습니까? 내 응용 프로그램에 의해 변경된 파일이 HDFS에서도 올바르게 변경 되었습니까? 나는 주위를 봤와 당신은 Docker volume docs 살펴있을 수 있습니다 ...

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

을 유사한 방법을 찾지 못했습니다.

기본적으로 app.json의 volumes 정의는 호스트 경로를 읽기 - 쓰기 모드에서 /home으로 도커 컨테이너에 매핑됩니다 것을 의미 플래그 -v /hadoop/hdfs-mount:/home:RW으로 도커 이미지의 시작을 트리거한다.

앱을 실행중인 노드로 SSH하고 docker inspect <containerId>을 수행하면이 사실을 확인할 수 있습니다.

또한 내 도커 이미지가 HDFS (더 하둡 클라이언트가 설치되어 있지), 파일이 여전히 제대로 HDFS에 기록 할 수있는 파일을 작성하도록 구성되지 않은 경우

+0

보기? –

관련 문제