If it is useful to anyone, I saw that this problem has been fixed since 2.9.0
with https://issues.apache.org/jira/browse/MAPREDUCE-6338
Il martedì 25 gennaio 2022, 16:56:16 CET, Hamado Dene
<[email protected]> ha scritto:
Hi hadoop community,
I am noticing that when a container is run on the nodemanager, it always gets a
random port.
On our side we have the firewall active on the machines. So we try where
possible to specify a range of ports in the configuration and then unblock them
on the firewall.In the mapred configuration I have already made the following
config:<property> <name>yarn.app.mapreduce.am.job.client.port-range</name>
<value>50000-50050</value></property>
<property> <name>yarn.app.mapreduce.am.webapp.port-range</name>
<value>50051-50100</value></property>
But when the container is launched, analyzing the syslog log (/ data / hadoop /
logs / userlogs / container_e42_1643125102241_0001_01_000012 / syslog) I see
the exception:
2022-01-25 15:41:06,666 WARN [main] org.apache.hadoop.ipc.Client: Failed to
connect to server: rzv-db13-hd/10.216.5.15:37055: retries get failed due to
exceeded maximum allowed retries number: 10java.net.NoRouteToHostException: No
route to host at sun.nio.ch.SocketChannelImpl.checkConnect(Native
Method) at
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)
at
org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531) at
org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:685)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:788)
at org.apache.hadoop.ipc.Client$Connection.access$3500(Client.java:410)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1550) at
org.apache.hadoop.ipc.Client.call(Client.java:1381) at
org.apache.hadoop.ipc.Client.call(Client.java:1345) at
org.apache.hadoop.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:249)
at com.sun.proxy.$Proxy8.getTask(Unknown Source) at
org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:137)
This is because port 37055 is not unlocked on the machine.verifying on the
rzv-db13-hd machine, I see that the service listening on that port is:
/usr/java/current8/bin/java
-Djava.io.tmpdir=/data2/namenodeFsimage/yarnData/usercache/magnews/appcache/application_1643115383937_0011/container_e37_1643115383937_0011_01_000001/tmp
-Dlog4j.configuration=container-log4j.properties
-Dyarn.app.container.log.dir=/data/hadoop/logs/userlogs/application_1643115383937_0011/container_e37_1643115383937_0011_01_000001
-Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA
-Dhadoop.root.logfile=syslog -Xmx1024m
org.apache.hadoop.mapreduce.v2.app.MRAppMaster
Therefore the org.apache.hadoop.mapreduce.v2.app.MRAppMaster service always
generates a random port at each execution.Is it possible to specify a range of
ports for this App?
Thanks,