问题:线程“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
1条答案
按热度按时间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)和/或端口上。