如何在 Docker 容器中挂载 HDFS
How to mount HDFS in a Docker container
我在 Docker 容器中 Docker 制作了一个应用程序。我打算让应用程序能够从我们的 HDFS 访问文件。 Docker 图像将部署在我们通过 Marathon-Mesos 安装 HDFS 的同一集群上。
下面是 json 即将 POST 的马拉松比赛。看来我的应用程序能够在 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": {}
}
]
}
你可以看看Docker volume docs。
基本上,app.json 中的 volumes
定义将触发带有标志 -v /hadoop/hdfs-mount:/home:RW
的 Docker 图像的开始,这意味着主机路径被映射到Docker 容器在读写模式下为 /home
。
如果您通过 SSH 进入 运行 应用程序节点并执行 docker inspect <containerId>
.
,您应该能够验证这一点
另见
我在 Docker 容器中 Docker 制作了一个应用程序。我打算让应用程序能够从我们的 HDFS 访问文件。 Docker 图像将部署在我们通过 Marathon-Mesos 安装 HDFS 的同一集群上。
下面是 json 即将 POST 的马拉松比赛。看来我的应用程序能够在 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": {}
}
]
}
你可以看看Docker volume docs。
基本上,app.json 中的 volumes
定义将触发带有标志 -v /hadoop/hdfs-mount:/home:RW
的 Docker 图像的开始,这意味着主机路径被映射到Docker 容器在读写模式下为 /home
。
如果您通过 SSH 进入 运行 应用程序节点并执行 docker inspect <containerId>
.
另见