ambari server2.7.3启动YARN时报错:Starting RegistryDNSServer报错

一、错误信息

************************************************************/
2020-04-20 16:13:13,439 INFO  dns.PrivilegedRegistryDNSStarter (LogAdapter.java:info(51)) - registered UNIX signal handlers for [TERM, HUP, INT]
2020-04-20 16:13:13,642 INFO  dns.RegistryDNS (RegistryDNS.java:initializeChannels(195)) - Opening TCP and UDP channels on /0.0.0.0 port 53
2020-04-20 16:13:13,654 ERROR dns.PrivilegedRegistryDNSStarter (PrivilegedRegistryDNSStarter.java:init(61)) - Error initializing Registry DNS
java.net.BindException: Problem binding to [centos771:53] java.net.BindException: Address already in use; For more details see:  http://wiki.apache.org/hadoop/BindException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:831)
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:736)
    at org.apache.hadoop.registry.server.dns.RegistryDNS.openUDPChannel(RegistryDNS.java:1016)
    at org.apache.hadoop.registry.server.dns.RegistryDNS.addNIOUDP(RegistryDNS.java:925)
    at org.apache.hadoop.registry.server.dns.RegistryDNS.initializeChannels(RegistryDNS.java:196)
    at org.apache.hadoop.registry.server.dns.PrivilegedRegistryDNSStarter.init(PrivilegedRegistryDNSStarter.java:59)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:207)
Caused by: java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.DatagramChannelImpl.bind(DatagramChannelImpl.java:702)
    at sun.nio.ch.DatagramSocketAdaptor.bind(DatagramSocketAdaptor.java:91)
    at org.apache.hadoop.registry.server.dns.RegistryDNS.openUDPChannel(RegistryDNS.java:1014)
    ... 8 more

二、分析原因

启动yarn server时需要用到dns常用端口53进行注册,错误提示显示 绑定到主机centos771的53号端口时(Problem binding to [centos771:53])地址已经被使用(Address already in use)。但经过分析,实际上是53号端口被占用,导致yarn server启用53端口不成功。

查找原因方法如下:

netstat -tunpl |grep 53 看端口号53被哪个进程占用,而且观察53号端口绑定在哪个接口上面,我的机器显示被绑定在虚拟网桥上面virbr0,这是因为cento7(1908)在安装时默认安装了虚拟服务器组件,并设置了默认网桥,配置了默认ip。

ambari server2.7.3启动YARN时报错:Starting RegistryDNSServer报错_第1张图片

而且启动了默认的dns服务:

这样导致yarn server 无法使用53号端口,而启动失败。

三、解决办法

1、如果需要使用dns,则dns server的默认端口是53,也就是说有可能需要使用虚拟服务器或者dns服务器,则53端口是默认的端口号,这时可以考虑更改ambari server的YARN Registry DNS Bind Port,这样就不会冲突。过程如下:

(1)打开Ambari管理界面并进入YARN管理界面。

(2)点击CONFIGS,进入配置界面。

(3)点击ADVANCED进入高级设置中修改DNS端口号,将53修改成其他不被占用的端口即可。
(4)重启集群,YARN正常启动。

2、如果不需要网桥,也就是暂时不需要使用虚拟化服务设施,则可以选择关闭网桥。过程如下:

(1)查看接口信息

ambari server2.7.3启动YARN时报错:Starting RegistryDNSServer报错_第2张图片

(2)brctl show,显示网桥信息

(3)关闭网桥ifconfig virbr0 down

(4)删除网桥

brctl delbr virbr0

(5)再查看已无网桥并没有53号端口的占用情况,且yarn启动没有警告信息。

ambari server2.7.3启动YARN时报错:Starting RegistryDNSServer报错_第3张图片

(6)彻底关闭虚拟化服务(禁止自启动)

systemctl disable libvirtd

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ambari,server)