2016-06-09 5 views
1

Ich habe eine Anwendung Dockerized in einem Docker-Container erstellt. Ich wollte die Anwendung in die Lage versetzen, auf Dateien von unserem HDFS zuzugreifen. Das Docker-Image wird auf demselben Cluster bereitgestellt, auf dem HDFS über Marathon-Mesos installiert wurde.So mounten Sie HDFS in einem Docker-Container

Unten ist der JSON zu POST zu Marathon. Es scheint, dass meine App Dateien im HDFS lesen und schreiben kann. Kann sich jemand dazu äußern? Werden Dateien, die von meiner App geändert wurden, auch im HDFS korrekt geändert? Ich gegoogelt um und brachte keine ähnliche Ansätze finden ...

{ 
    "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": {} 
    } 
    ] 
} 

Antwort

1

Sie könnten am Docker volume docs einen Blick.

Grundsätzlich ist die volumes Definition im app.json auslösen würde den Beginn des Docker Bildes mit der Flagge -v /hadoop/hdfs-mount:/home:RW, was bedeutet, dass der Host-Pfad zu dem Behälter als Docker /home in Lese-Schreib-Modus abgebildet wird.

Sie sollten in der Lage sein, dies zu überprüfen, wenn Sie SSH in den Knoten, der die App ausführt und eine docker inspect <containerId> tun.

Siehe

+0

auch wenn mein Docker Bild konfiguriert ist, keine Dateien in HDFS zu schreiben (kein hadoop Client installiert ist), könnten Dateien noch richtig im HDFS geschrieben werden? –

Verwandte Themen