最接买了两个便宜的服务器,本想搭建一个Hdoop集群,可是在搭建的时候遇到了很多的问题,例如:
namenode不能启动,datanode能正常启动
在master上使用jps查看启动状态:
root@master:/Hadoop/hadoop-3.1.1/logs# jps
38416 NodeManager
37946 DataNode
38619 Jps
查看hadoop安装目录log文件夹下的namenode启动日志提示:
java.net.BindException: Port in use: master:50070
和
java.net.BindException: Port in use: master:50070
最开始本以为是端口占用的问题,于是乎去百度了很多,大部分都是说使用:
lsof -i:50070
来查看占用端口的进程,然后kill掉。
但是使用后却没有发现占用端口的进程。。。
然后我又以为是配置文件的问题,最后折磨了我一天,最后终于找到了问题所在:
首先看/etc/hosts这个文件:
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
172.16.0.6 instance-cqxyyrb2 instance-cqxyyrb2.novalocal
#这是master的公网ip
106.***.***.66 master
#这是slave1的公网ip
120.***.***.237 slave1
127.0.0.1 localhost root localhost4 localhost4.localdomain4
::1 localhost root localhost6 localhost6.localdomain6
hosts里面的master使用的是公网ip,于是我试了试将其换成内网ip:
首先使用ifconfig查看内网ip
root@master:/Hadoop/hadoop-3.1.1/logs# ifconfig
ens3 Link encap:Ethernet HWaddr fa:16:3e:68:a9:36
inet addr:172.16.0.6 Bcast:172.16.15.255 Mask:255.255.240.0
inet6 addr: fe80::f816:3eff:fe68:a936/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:182328 errors:0 dropped:0 overruns:0 frame:0
TX packets:179699 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18446369 (18.4 MB) TX bytes:32539342 (32.5 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:32097 errors:0 dropped:0 overruns:0 frame:0
TX packets:32097 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:18132816 (18.1 MB) TX bytes:18132816 (18.1 MB)
由此得到内网ip为:172.16.0.6,更改master为内网ip:
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
172.16.0.6 instance-cqxyyrb2 instance-cqxyyrb2.novalocal
#master使用内网ip
172.16.0.6 master
#slave1使用公网ip
120.***.***.237 slave1
127.0.0.1 localhost root localhost4 localhost4.localdomain4
::1 localhost root localhost6 localhost6.localdomain6
最后最后试了下启动成功啦:
root@master:/Hadoop/hadoop-3.1.1/logs# start-all.sh
Starting namenodes on [master]
Starting datanodes
Starting secondary namenodes [slave1]
Starting resourcemanager
Starting nodemanagers
root@master:/Hadoop/hadoop-3.1.1/logs# jps
39712 NameNode
39862 DataNode
40233 ResourceManager
40377 NodeManager
40730 Jps
root@master:/Hadoop/hadoop-3.1.1/logs#
这里只需要修改master服务器上的hosts文件,slave1节点上可以不用修改。