如何在Docker容器中安装HDFS

时间:2016-06-09 20:59:42

标签: hadoop docker hdfs mesos marathon

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

以下是要发布到Marathon的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 个答案:

答案 0 :(得分:1)

您可以查看Docker volume docs

基本上,app.json中的volumes定义会触发带有标志-v /hadoop/hdfs-mount:/home:RW的Docker镜像的启动,这意味着主机路径将被映射到Docker容器{{1}在读写模式下。

如果您通过SSH连接到运行应用程序的节点并执行/home,您应该能够验证这一点。

另见