簡體   English   中英

Flink集群上的taskmanager被殺死

[英]taskmanager killed on Flink cluster

我正在三個節點的群集上執行Apache Flink程序。 其中之一也可以充當工作經理和任務經理。 其他兩個只是任務管理器。

當我啟動程序(在jobmanager上執行)時,出現以下錯誤(在該程序無實際執行一分鍾之后):

java.lang.Exception: TaskManager was lost/killed: c4211322e77548b791c70d466c138a49 @ giordano-2-2-100-1 (dataPort=37904)
at org.apache.flink.runtime.instance.SimpleSlot.releaseSlot(SimpleSlot.java:217)
at org.apache.flink.runtime.instance.SlotSharingGroupAssignment.releaseSharedSlot(SlotSharingGroupAssignment.java:533)
at org.apache.flink.runtime.instance.SharedSlot.releaseSlot(SharedSlot.java:192)
at org.apache.flink.runtime.instance.Instance.markDead(Instance.java:167)
at org.apache.flink.runtime.instance.InstanceManager.unregisterTaskManager(InstanceManager.java:212)
at org.apache.flink.runtime.jobmanager.JobManager.org$apache$flink$runtime$jobmanager$JobManager$$handleTaskManagerTerminated(JobManager.scala:1228)
at org.apache.flink.runtime.jobmanager.JobManager$$anonfun$handleMessage$1.applyOrElse(JobManager.scala:1131)
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36)
at org.apache.flink.runtime.LeaderSessionMessageFilter$$anonfun$receive$1.applyOrElse(LeaderSessionMessageFilter.scala:49)
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36)
at org.apache.flink.runtime.LogMessages$$anon$1.apply(LogMessages.scala:33)
at org.apache.flink.runtime.LogMessages$$anon$1.apply(LogMessages.scala:28)
at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
at org.apache.flink.runtime.LogMessages$$anon$1.applyOrElse(LogMessages.scala:28)
at akka.actor.Actor$class.aroundReceive(Actor.scala:467)
at org.apache.flink.runtime.jobmanager.JobManager.aroundReceive(JobManager.scala:125)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.dungeon.DeathWatch$class.receivedTerminated(DeathWatch.scala:44)
at akka.actor.ActorCell.receivedTerminated(ActorCell.scala:369)
at akka.actor.ActorCell.autoReceiveMessage(ActorCell.scala:501)
at akka.actor.ActorCell.invoke(ActorCell.scala:486)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
at akka.dispatch.Mailbox.run(Mailbox.scala:220)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

其中giordano-2-2-100-1是作業任務管理器的地址。 我將Task Slot的數量設置為等於機器核心(2),並將堆內存設置為與meminfo顯示的可用內存相對應。

在執行過程中(出現錯誤之前),我觀察了CPU的使用情況,並注意到作業任務管理器的兩個核心正在工作(每個核心至少50%,有時其中一個甚至100%),而另外兩個節點(任務管理器)完全免費,CPU使用率約為0%。

我正確設置了jobmanager的rpc地址,並正確填充了slave文件:

giordano-2-2-100-1
giordano-2-2-100-2
giordano-2-2-100-3

此外,我使用來自主節點的ping來驗證其他節點是否可以訪問並且沒有問題,使用來自任務管理器的telnet來驗證作業管理器是否可以訪問,在這種情況下,一切都還可以。

老實說,我對自己做錯的事情一無所知...

此外,我嘗試在便攜式計算機(雙核)上執行該程序,並使用與實際群集相同的配置和相同的jar設置單節點群集。 在這種情況下,一切工作正常,因此我可以確定問題出在工作經理中。

PS在堆棧溢出時,我發現了以下相同問題的答復: TaskManager丟失/被殺死,但我不知道如何設置其他垃圾收集器。

當任務管理器內存不足並且GC花費過多時間嘗試釋放一些內存時,我就遇到了這個問題。

嘗試使用更多的內存或減少任務的內存需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM