毕设涉及HDFS,理论看的感觉差不多了,想搭起来测试一下性能来验证以便进行开题报告,万万没想到装HDFS花费了许多天,踩了许多坑,记录一下。
背景:使用两台阿里云学生机ECS,分处不同账号不同区域,一个NN一个DN,hadoop3.0.3
1 内网下安装HDFS不需要管私网or公网ip,直接在/etc/hosts下面设私网ip就完事了,因为肯定能联系的上
然而ECS互相之间不能通过私网ip..同账号下同区域似乎可以,不同账号不同区域似乎也可以通过神仙操作利用VPC打通,但是很麻烦就是了。。
我的操作是在DN下设DN为私网ip,NN为公网ip,NN下设NN私DN公,如果都设公网的话会发生玄妙的错误(NN无法访问到NN),然后在core-site里面设置NN的URI是"master"来通信。
2 设置完其实还是不行,会出现更玄妙的"DN拿着NN的公网ip和NN已经监听的端口号却还是无法连接"的问题
关掉NN的任何防护都不管用,监听的端口也是开着的,然而DN使用nmap看这个端口得到的是“filtered”,这就很迷茫了。
一通搜索后发现一个用阿里云ECS的老哥进行了奇怪的设置,在安全组开放了全部的端口,万万没想到还有这种操作,开放了就完事了
ECS外还有一层十分暴力的壳,一通脑补后觉得可以这样认为,“ECS这个虚拟机上装载的防火墙作用于访问ECS的通信,然而在阿里云的设定中,能到达ECS这个虚拟机的信息还要再被筛一遍”,安全组的说明中也提到了,可以在ECS被控制的情况下进行设定以XXXX。