簡體   English   中英

線程“main”中的異常 java.lang.OutOfMemoryError: Java 水槽中的堆空間

[英]Exception in thread "main" java.lang.OutOfMemoryError: Java heap space in flume

問題:線程“main”中的異常 java.lang.OutOfMemoryError:Java 水槽中的堆空間。

執行命令

flume-ng agent --conf conf 
--conf-file /usr/local/flume/conf/twitter.conf --name TwitterAgent
-Dflume.root.logger=DEBUG.console

Output:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Conf File配置文件

Flume env.sh flume-env.sh

我將您使用的配置與此處的示例進行了比較,沒有發現任何錯誤。 我能看到的唯一區別是:

  • 您為TwitterAgent.channels.MemChannel.capacity使用了較小的值
  • 你對TwitterAgent.sinks.HDFS.hdfs.batchsizeTwitterAgent.sinks.HDFS.hdfs.rollcount使用了較小的
  • TwitterAgent.sinks.HDFS.hdfs.path不同。

我不會想到其中任何一個會增加memory 的利用率。

另一件要檢查的事情是數據是否真的流入 HDFS。 同一個來源說你應該使用 Hadoop Administration Web UI 來檢查數據是否流入 Hadoop。我想如果數據沒有流動,那么它可以累積在 flume-ng 應用程序的堆中。 如果積累了太多的數據,你最終會溢出堆。 不管你設置什么堆大小。

數據可能不流動的可能原因包括:

  • Hadoop 未運行。
  • Hadoop 在與您在水槽配置文件中指定的主機(或 IP)和/或端口不同的主機(或 IP)上運行。

暫無
暫無

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

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