线程“main”java.lang.outofmemoryerror中出现异常:flume中的java堆空间

5ssjco0h  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(329)

问题:线程“main”java.lang.outofmemoryerror中出现异常:flume中的java堆空间。
正在执行命令:

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

输出:

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

conf文件config文件
Flume环境.shFlume环境.sh

3ks5zfa0

3ks5zfa01#

我将您使用的配置与这里的示例进行了比较,没有发现任何错误。我能看到的唯一区别是:
您使用了较小的值 TwitterAgent.channels.MemChannel.capacity 你用小一点的 TwitterAgent.sinks.HDFS.hdfs.batchsize 以及 TwitterAgent.sinks.HDFS.hdfs.rollcount 这个 TwitterAgent.sinks.HDFS.hdfs.path 是不同的。
我不会想到这些都会提高内存利用率。
另一个需要检查的是数据是否真的流入了hdfs。同样的消息来源说,您应该使用hadoop管理webui来检查数据是否流入hadoop。我想,如果数据没有流动,那么它可能会在flume ng应用程序的堆中累积。如果积累了太多的数据,最终会使堆溢出。不管你设置的堆大小是多少。
数据不流动的可能原因包括:
hadoop未运行。
hadoop运行在与flume配置文件中指定的主机(或ip)和/或端口不同的主机(或ip)和/或端口上。

相关问题