在宿主机如何访问docker中hadoop的hdfs:ip:9000啊, 端口映射出来啊
巴扎黑
巴扎黑 2017-04-25 09:01:31
0
1
1200

本人有一个3节点hadoop, 启动了3个docker容器, 众所周知, docker容器内服务的端口是可以映射到宿主机的端口的, 我采用-P将容器的所有端口映射到主机端口, 命令如下:

docker run -it -v /Users/yc/hadoop/docker:/test -P -h h1 --name h1 sequenceiq/hadoop-docker /etc/bootstrap.sh -bash

这是第master节点的启动脚本, 映射了一个宿主机目录, 映射了所有容器端口到宿主机, 而且设置了容器的hostname
当我查看进程的时候

docker ps

结果如下, 我做了下美化:

b96b897c6532        sequenceiq/hadoop-docker   "/etc/bootstrap.sh -b"   
24 minutes ago      Up 24 minutes       
0.0.0.0:32797->2122/tcp, 
0.0.0.0:32796->8030/tcp, 
0.0.0.0:32795->8031/tcp, 
0.0.0.0:32794->8032/tcp, 
0.0.0.0:32793->8033/tcp, 
0.0.0.0:32792->8040/tcp, 
0.0.0.0:32791->8042/tcp, 
0.0.0.0:32790->8088/tcp, 
0.0.0.0:32789->19888/tcp, 
0.0.0.0:32788->49707/tcp, 
0.0.0.0:32787->50010/tcp, 
0.0.0.0:32786->50020/tcp, 
0.0.0.0:32785->50070/tcp, 
0.0.0.0:32784->50075/tcp, 
0.0.0.0:32783->50090/tcp   
h1

我们常用的50070和8088都映射出来了, 但是9000没有, 我知道9000这个协议是hdfs, 可能不属于tcp, 那么如何在我宿主机访问啊
我想用IDEA开发hadoop的java程序, 输入输出目录都得是 hdfs:ip:9000/目录 这种形式的, 不知道如何访问docker容器的该端口啊

巴扎黑
巴扎黑

membalas semua(1)
習慣沉默

Ketiadaan port ipc HDFS ialah pepijat dalam sequenceiq/hadoop-docker jujukan imej/hadoop-docker#48 Walaupun ia telah diperbaiki (lihat: https://github.com/sequenceiq..., penyelenggaranya telah tidak membina versi baharu imej, menyebabkan anda masih menghadapi masalah menggunakannya sekarang

.

Penyelesaiannya sangat mudah, cuma tambah docker run secara manual pada parameter selepas -p 9000:9000.

Sebenarnya, walaupun tapak web Hadoop menyebut sequenceiq/hadoop-docker imej docker, berdasarkan tulisan Dockerfilenya, pengarangnya mempunyai pemahaman yang cetek tentang Docker dan tidak mengikut amalan terbaik Dockerfile rasmi Docker sebagai praktikal garis panduan, imej sangat kembung dan tidak dibuat dengan baik. Jika anda mempunyai keupayaan, anda harus mengikut garis panduan amalan terbaik rasmi untuk menyesuaikan imej yang anda perlukan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan