当前位置: 首页 > 面试题库 >

Kafka Connect堆空间不足

饶承宣
2023-03-14
问题内容

启动Kafka Connect(connect-standalone)后,我的任务在以以下内容启动后立即失败:

java.lang.OutOfMemoryError: Java heap space
    at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
    at java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
    at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:93)
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:71)
    at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:154)
    at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:135)
    at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:343)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:291)
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:260)
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:232)
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:180)
    at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:193)
    at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:248)
    at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1013)
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:979)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.pollConsumer(WorkerSinkTask.java:316)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:222)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:170)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:142)
    at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:140)
    at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:175)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

在一些Kafka文档中提到堆空间,告诉您使用“默认值”进行尝试,并且仅在出现问题时才对其进行修改,但是没有修改堆空间的说明。


问题答案:

您可以通过设置KAFKA_HEAP_OPTS环境变量来控制最大堆大小和初始堆大小。

以下示例将起始大小设置为512 MB,最大大小设置为1 GB:

KAFKA_HEAP_OPTS="-Xms512m -Xmx1g" connect-standalone connect-worker.properties connect-s3-sink.properties

当运行Kafka命令(如)时connect-standalone,将kafka-run- class调用脚本,该脚本会在环境变量(如果尚未设置)中将默认堆大小设置为256
MB
KAFKA_HEAP_OPTS



 类似资料:
  • 问题内容: 我最近在具有24个CPU和32GB RAM的服务器上使用了带有Ipython的PySpark。它仅在一台机器上运行。在我的过程中,我想收集以下代码中给出的大量数据: 当我做 它给我outOfMemory错误。。另外,此错误发生后,我无法在Spark上执行任何操作,因为它失去了与Java的连接。它给。 看起来堆空间很小。如何设置更大的限制? 编辑 : 我在运行之前尝试过的事情: 我根据此

  • 问题内容: 我在执行多线程程序时遇到以下错误 上面的错误发生在其中一个线程中。 据我所知,堆空间仅由实例变量占用。如果这是正确的,那么为什么在运行一段时间后会出现此错误,因为在创建对象时分配了实例变量的空间。 有什么办法可以增加堆空间? 我应该对程序进行哪些更改,以使其占用更少的堆空间? 问题答案: 如果要增加堆空间,可以 -在命令行上使用。默认情况下,这些值基于JRE版本和系统配置。你可以在Ja

  • 我面临一些关于内存问题的问题,但我无法解决它。非常感谢您的帮助。我不熟悉Spark和pyspark功能,试图读取大约5GB大小的大型JSON文件,并使用 每次运行上述语句时,都会出现以下错误: 我需要以RDD的形式获取JSON数据,然后使用SQLSpark进行操作和分析。但是我在第一步(读取JSON)本身就出错了。我知道要读取如此大的文件,需要对Spark会话的配置进行必要的更改。我遵循了Apac

  • 我想从网页上选定的文本中提取名词,并在文本显示时突出显示它们。所以我使用OpenNLP库来解析和获取名词列表。它在java类中运行良好,没有内存问题,尽管在显示输出之前花费了6-7秒,但当我在jsp页面中运行代码时,我得到了以下错误: 根本原因 我读到的一些解决方案建议通过这样做来增加apache tomcat的堆内存大小: 所以我将其设置为-Xmx2g,但仍然会产生相同的错误。我认为我不需要修改

  • 我最近一直在我的服务器上使用PySpark和Ipython,服务器上有24个CPU和32GB RAM。它只在一台机器上运行。在我的过程中,我想收集大量的数据,如下代码所示: 当我做的时候 它给了我outOfMemory错误。。此外,我不能在此错误后对Spark执行任何操作,因为它失去了与Java的连接。它给出了。 看起来堆空间很小。我怎么才能把它设置到更大的限度呢? 编辑: 运行前尝试的内容: 我

  • 我使用javaml训练分类器。现在,我的数据中的实例包含如下格式的向量 1 0:5 1:9 24:2 ...... 所以当我从文件中读取这些时,我使用string.split.然后将值放入稀疏实例中,然后将其添加到分类器中。 然而,我得到了一个堆空间内存错误。我读过关于字符串的文章。split()导致内存泄漏,因此我使用了新的String来避免内存泄漏。然而,我仍然面临堆空间问题 代码如下所示 /