简单使用
当HDFS是安装在Docker容器中时,容器开启时需要映射三个端口:
端口 | 用途 |
---|---|
9870 | 可视化界面 |
9000 | fdfs连接接口 |
9864 | 辅助接口 |
[root@VM-16-10-centos ~]# docker run -d -p 9870:9870 -p 9000:9000 -p 9864:9864 --name=hdfs_single --privileged hadoop_proto /usr/sbin/init
当然,以上端口都要在防火墙(或者服务器安全组)中对外开放!
如果已经不小心开启了容器,那么动态添加端口映射的方法如下:
https://www.cnblogs.com/zhumengke/articles/13525837.html
远程接入的界面(hdfshealth.html)如下:
文件界面(explorer.html)如下:
但是,之后会发现文件不能下载、也不能上传文件!
以下载文件为例,点击下载会先发送一个包去请求,得到文件所在的位置,第二个包才真正去这个位置下载文件。
而得到的位置信息,不是主机的ip地址,而是容器名:
而我们客户端是不知道此容器的ip地址
所以暂时的方案是:更改hosts文件里的映射信息!
这样就解决了下载的问题
局限性
修改文件
当我们试图修改或删除文件的时候,会发现我们没有权限,而我们远程接入的情况导致我们没有办法登录我们在服务器上的账号。
所以一种临时的方案就是修改权限,但是这样就失去了文件的安全性
上传文件
上传文件也会因为权限问题报错,解决方案同上,但问题也一样明显