У меня есть задания по передаче данных, выполняющие ограниченные потоки во Flink. Эти задания отправляются в кластер Flink в режиме отсоединения сеанса пряжи много раз в день. Каждый день происходит странное явление: меньшая часть случайных заданий, около 5% не требовательных к памяти, терпят неудачу, потому что контейнер был удален из-за выхода за пределы физической памяти.
Менеджер заданий имеет распечатанное дерево процессов при удалении контейнера. Он показывает, что есть два дублированных процесса JVM TaskExecutorRunner с одинаковыми параметрами, один из которых является родительским процессом.
Версия Flink: 1.6.2
Что не так с контейнером диспетчера задач? Вы когда-нибудь сталкивались с этой проблемой?
jobmanager.log:
2020-07-13 08:20:38,353 INFO org.apache.flink.yarn.YarnResourceManager - Closing TaskExecutor connection container_e17_1594464964771_78288_01_000002 because: Container [pid=126548,containerID=container_e17_1594464964771_78288_01_000002] is running beyond physical memory limits. Current usage: 2.5 GB of 2 GB physical memory used; 7.0 GB of 4.2 GB virtual memory used. Killing container.
Dump of the process-tree for container_e17_1594464964771_78288_01_000002 :
|- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE
|- 133231 126644 126548 126548 java 0 360 3703341056 324345 /usr/local/jdk1.8.0_112/bin/java -Xms1304m -Xmx1304m -XX:MaxDirectMemorySize=744m -Djob_name=squirrel_mt_netsec.db_conn_ip -Dengine_type=FLINK -Dlog.file=/data1/hadoop/yarn/userlogs/application_1594464964771_78288/container_e17_1594464964771_78288_01_000002/taskmanager.log -Dlogback.configurationFile=file:./logback.xml -Dlog4j.configuration=file:./log4j.properties org.apache.flink.yarn.YarnTaskExecutorRunner --configDir .
|- 126548 126400 126548 126548 bash 0 3 120193024 352 /bin/bash -c /usr/local/jdk1.8.0_112/bin/java -Xms1304m -Xmx1304m -XX:MaxDirectMemorySize=744m -Djob_name=squirrel_mt_netsec.db_conn_ip -Dengine_type=FLINK -Dlog.file=/data1/hadoop/yarn/userlogs/application_1594464964771_78288/container_e17_1594464964771_78288_01_000002/taskmanager.log -Dlogback.configurationFile=file:./logback.xml -Dlog4j.configuration=file:./log4j.properties org.apache.flink.yarn.YarnTaskExecutorRunner --configDir . 1> /data1/hadoop/yarn/userlogs/application_1594464964771_78288/container_e17_1594464964771_78288_01_000002/taskmanager.out 2> /data1/hadoop/yarn/userlogs/application_1594464964771_78288/container_e17_1594464964771_78288_01_000002/taskmanager.err
|- 126644 126548 126548 126548 java 3872 777 3703341056 324345 /usr/local/jdk1.8.0_112/bin/java -Xms1304m -Xmx1304m -XX:MaxDirectMemorySize=744m -Djob_name=squirrel_mt_netsec.db_conn_ip -Dengine_type=FLINK -Dlog.file=/data1/hadoop/yarn/userlogs/application_1594464964771_78288/container_e17_1594464964771_78288_01_000002/taskmanager.log -Dlogback.configurationFile=file:./logback.xml -Dlog4j.configuration=file:./log4j.properties org.apache.flink.yarn.YarnTaskExecutorRunner --configDir .
Container killed on request. Exit code is 143