Hi to all, i am trying to use Flink with Hadoop yarn but i am facing an exception while trying to create a yarn-session.
First of all, i have a Hadoop cluster with 20 VMs that uses yarn. I can start the Hadoop cluster and run Hadoop jobs without any problem. Furthermore, i am trying to deploy a Flink cluster on the same VMs and use the Flink Yarn client. I have the HADOOP_HOME environmental variable set and the hadoop cluster up and running. When i execute the ./bin/yarn-session.sh -n 10 -tm 8192 -s 32 command i have the following exception. Can someone explain me how to solve this? 10:20:56,105 INFO org.apache.hadoop.yarn.client.RMProxy - Connecting to ResourceManager at master/192.168.0.194:8032 10:20:56,353 WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 10:20:57,095 INFO org.apache.flink.yarn.FlinkYarnClient - Using values: 10:20:57,097 INFO org.apache.flink.yarn.FlinkYarnClient - TaskManager count = 10 10:20:57,097 INFO org.apache.flink.yarn.FlinkYarnClient - JobManager memory = 1024 10:20:57,097 INFO org.apache.flink.yarn.FlinkYarnClient - TaskManager memory = 2048 10:20:57,365 WARN org.apache.flink.yarn.FlinkYarnClient - This YARN session requires 21504MB of memory in the cluster. There are currently only 8192MB available. The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:57,365 WARN org.apache.flink.yarn.FlinkYarnClient - There is not enough memory available in the YARN cluster. The TaskManager(s) require 2048MB each. NodeManagers available: [8192] After allocating the JobManager (1024MB) and (3/10) TaskManagers, the following NodeManagers are available: [1024] The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:57,365 WARN org.apache.flink.yarn.FlinkYarnClient - There is not enough memory available in the YARN cluster. The TaskManager(s) require 2048MB each. NodeManagers available: [8192] After allocating the JobManager (1024MB) and (4/10) TaskManagers, the following NodeManagers are available: [1024] The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:57,366 WARN org.apache.flink.yarn.FlinkYarnClient - There is not enough memory available in the YARN cluster. The TaskManager(s) require 2048MB each. NodeManagers available: [8192] After allocating the JobManager (1024MB) and (5/10) TaskManagers, the following NodeManagers are available: [1024] The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:57,366 WARN org.apache.flink.yarn.FlinkYarnClient - There is not enough memory available in the YARN cluster. The TaskManager(s) require 2048MB each. NodeManagers available: [8192] After allocating the JobManager (1024MB) and (6/10) TaskManagers, the following NodeManagers are available: [1024] The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:57,366 WARN org.apache.flink.yarn.FlinkYarnClient - There is not enough memory available in the YARN cluster. The TaskManager(s) require 2048MB each. NodeManagers available: [8192] After allocating the JobManager (1024MB) and (7/10) TaskManagers, the following NodeManagers are available: [1024] The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:57,366 WARN org.apache.flink.yarn.FlinkYarnClient - There is not enough memory available in the YARN cluster. The TaskManager(s) require 2048MB each. NodeManagers available: [8192] After allocating the JobManager (1024MB) and (8/10) TaskManagers, the following NodeManagers are available: [1024] The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:57,366 WARN org.apache.flink.yarn.FlinkYarnClient - There is not enough memory available in the YARN cluster. The TaskManager(s) require 2048MB each. NodeManagers available: [8192] After allocating the JobManager (1024MB) and (9/10) TaskManagers, the following NodeManagers are available: [1024] The Flink YARN client will try to allocate the YARN session, but maybe not all TaskManagers are connecting from the beginning because the resources are currently not available in the cluster. The allocation might take more time than usual because the Flink YARN client needs to wait until the resources become available. 10:20:58,204 INFO org.apache.flink.yarn.Utils - Copying from file:/home/hduser/flink-0.10.0/lib/flink-dist-0.10.0.jar to hdfs://master:54310/user/hduser/.flink/application_1447928096470_0002/flink-dist-0.10.0.jar 10:21:00,235 INFO org.apache.flink.yarn.Utils - Copying from /home/hduser/flink-0.10.0/conf/flink-conf.yaml to hdfs://master:54310/user/hduser/.flink/application_1447928096470_0002/flink-conf.yaml 10:21:00,277 INFO org.apache.flink.yarn.Utils - Copying from file:/home/hduser/flink-0.10.0/lib/log4j-1.2.17.jar to hdfs://master:54310/user/hduser/.flink/application_1447928096470_0002/log4j-1.2.17.jar 10:21:00,349 INFO org.apache.flink.yarn.Utils - Copying from file:/home/hduser/flink-0.10.0/lib/slf4j-log4j12-1.7.7.jar to hdfs://master:54310/user/hduser/.flink/application_1447928096470_0002/slf4j-log4j12-1.7.7.jar 10:21:00,400 INFO org.apache.flink.yarn.Utils - Copying from file:/home/hduser/flink-0.10.0/lib/flink-python-0.10.0.jar to hdfs://master:54310/user/hduser/.flink/application_1447928096470_0002/flink-python-0.10.0.jar 10:21:00,441 INFO org.apache.flink.yarn.Utils - Copying from file:/home/hduser/flink-0.10.0/conf/logback.xml to hdfs://master:54310/user/hduser/.flink/application_1447928096470_0002/logback.xml 10:21:00,486 INFO org.apache.flink.yarn.Utils - Copying from file:/home/hduser/flink-0.10.0/conf/log4j.properties to hdfs://master:54310/user/hduser/.flink/application_1447928096470_0002/log4j.properties 10:21:00,553 INFO org.apache.flink.yarn.FlinkYarnClient - Submitting application master application_1447928096470_0002 10:21:00,963 INFO org.apache.hadoop.yarn.client.api.impl.YarnClientImpl - Submitted application application_1447928096470_0002 10:21:00,964 INFO org.apache.flink.yarn.FlinkYarnClient - Waiting for the cluster to be allocated 10:21:00,969 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:01,973 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:02,977 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:03,982 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:04,986 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:05,990 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:06,994 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:07,996 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:09,003 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:10,007 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED 10:21:11,011 INFO org.apache.flink.yarn.FlinkYarnClient - Deploying cluster, current state ACCEPTED Error while deploying YARN cluster: The YARN application unexpectedly switched to state FAILED during deployment. Diagnostics from YARN: Application application_1447928096470_0002 failed 1 times due to Error launching appattempt_1447928096470_0002_000001. Got exception: java.net.ConnectException: Call From flink-master/127.0.0.1 to localhost:38425 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:792) at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:732) at org.apache.hadoop.ipc.Client.call(Client.java:1480) at org.apache.hadoop.ipc.Client.call(Client.java:1407) at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229) at com.sun.proxy.$Proxy31.startContainers(Unknown Source) at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:96) at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119) at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:254) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744) at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495) at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:609) at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:707) at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:370) at org.apache.hadoop.ipc.Client.getConnection(Client.java:1529) at org.apache.hadoop.ipc.Client.call(Client.java:1446) ... 9 more . Failing the application. If log aggregation is enabled on your cluster, use this command to further investigate the issue: yarn logs -applicationId application_1447928096470_0002 org.apache.flink.yarn.FlinkYarnClientBase$YarnDeploymentException: The YARN application unexpectedly switched to state FAILED during deployment. Diagnostics from YARN: Application application_1447928096470_0002 failed 1 times due to Error launching appattempt_1447928096470_0002_000001. Got exception: java.net.ConnectException: Call From flink-master/127.0.0.1 to localhost:38425 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:792) at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:732) at org.apache.hadoop.ipc.Client.call(Client.java:1480) at org.apache.hadoop.ipc.Client.call(Client.java:1407) at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229) at com.sun.proxy.$Proxy31.startContainers(Unknown Source) at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:96) at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119) at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:254) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744) at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495) at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:609) at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:707) at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:370) at org.apache.hadoop.ipc.Client.getConnection(Client.java:1529) at org.apache.hadoop.ipc.Client.call(Client.java:1446) ... 9 more . Failing the application. If log aggregation is enabled on your cluster, use this command to further investigate the issue: yarn logs -applicationId application_1447928096470_0002 at org.apache.flink.yarn.FlinkYarnClientBase.deployInternal(FlinkYarnClientBase.java:646) at org.apache.flink.yarn.FlinkYarnClientBase.deploy(FlinkYarnClientBase.java:338) at org.apache.flink.client.FlinkYarnSessionCli.run(FlinkYarnSessionCli.java:409) at org.apache.flink.client.FlinkYarnSessionCli.main(FlinkYarnSessionCli.java:351) Just to mention that my link-conf.yaml is the following : #============================================================================== # Common #============================================================================== # The host on which the JobManager runs. Only used in non-high-availability mode. # The JobManager process will use this hostname to bind the listening servers to. # The TaskManagers will try to connect to the JobManager on that host. jobmanager.rpc.address: master # The port where the JobManager's main actor system listens for messages. jobmanager.rpc.port: 6123 # The heap size for the JobManager JVM jobmanager.heap.mb: 256 # The heap size for the TaskManager JVM taskmanager.heap.mb: 512 # The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline. taskmanager.numberOfTaskSlots: 10 # The parallelism used for programs that did not specify and other parallelism. parallelism.default: 5 #============================================================================== # Web Frontend #============================================================================== # The port under which the web-based runtime monitor listens. # A value of -1 deactivates the web server. jobmanager.web.port: 8081 # The port uder which the standalone web client # (for job upload and submit) listens. webclient.port: 8080 #============================================================================== # Streaming state checkpointing #============================================================================== # The backend that will be used to store operator state checkpoints if # checkpointing is enabled. # # Supported backends: jobmanager, filesystem, <class-name-of-factory> # #state.backend: filesystem # Directory for storing checkpoints in a Flink-supported filesystem # Note: State backend must be accessible from the JobManager and all TaskManagers. # Use "hdfs://" for HDFS setups, "file://" for UNIX/POSIX-compliant file systems, # (or any local file system under Windows), or "S3://" for S3 file system. # # state.backend.fs.checkpointdir: hdfs://namenode-host:port/flink-checkpoints #============================================================================== # Advanced #============================================================================== # The number of buffers for the network stack. # # taskmanager.network.numberOfBuffers: 2048 # Directories for temporary files. # # Add a delimited list for multiple directories, using the system directory # delimiter (colon ':' on unix) or a comma, e.g.: # /data1/tmp:/data2/tmp:/data3/tmp # # Note: Each directory entry is read from and written to by a different I/O # thread. You can include the same directory multiple times in order to create # multiple I/O threads against that directory. This is for example relevant for # high-throughput RAIDs. # # If not specified, the system-specific Java temporary directory (java.io.tmpdir # property) is taken. # # taskmanager.tmp.dirs: /tmp # Path to the Hadoop configuration directory. # # This configuration is used when writing into HDFS. Unless specified otherwise, # HDFS file creation will use HDFS default settings with respect to block-size, # replication factor, etc. # # You can also directly specify the paths to hdfs-default.xml and hdfs-site.xml # via keys 'fs.hdfs.hdfsdefault' and 'fs.hdfs.hdfssite'. # fs.hdfs.hadoopconf: /usr/local/hadoop/etc/hadoop/ #============================================================================== # Master High Availability (required configuration) #============================================================================== # The list of ZooKepper quorum peers that coordinate the high-availability # setup. This must be a list of the form: # "host1:clientPort,host2[:clientPort],..." (default clientPort: 2181) # # recovery.mode: zookeeper # # recovery.zookeeper.quorum: localhost:2181,... # # Note: You need to set the state backend to 'filesystem' and the checkpoint # directory (see above) before configuring the storageDir. # # recovery.zookeeper.storageDir: hdfs:///recovery Thanks in advance, Stefanos Antaris