首页 文章

启动apache flume时的nullpointerexception

提问于
浏览
0

我试图运行水槽,我得到nullpointerexception:


.jar:/ usr / local / hadoop / libexec /../ lib / oro-2.0.8.jar:/ usr / local / hadoop / libexec /../ lib / servlet-api-2.5-20081211.jar: /usr/local/hadoop/libexec/../lib/xmlenc-0.52.jar:/usr/local/hadoop/libexec/../lib/jsp-2.1/jsp-2.1.jar:/usr/local/hadoop /libexec/../lib/jsp-2.1/jsp-api-2.1.jar:/home/training/Downloads/hive-0.10.0/lib/*'-Dava.library.path =:/ usr / local / hadoop / libexec /../ lib / native / Linux-i386-32 org.apache.flume.node.Application --name agent SLF4J:类路径包含多个SLF4J绑定 . SLF4J:在[jar:file:/home/training/Downloads/apache-flume-1.6.0-bin/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定SLF4J:在[jar:file:/home/training/Downloads/hive-0.10.0/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定SLF4J:参见http ://www.slf4j.org/codes.html#multiple_bindings以获得解释 . 15/10/13 05:47:28 ERROR node.Application:运行时发生致命错误 . 以下是例外情况 . java.io.File上的java.lang.NullPointerException . (File.java:251)org.apache.flume.node.Application.main(Application.java:302)

我用来启动水槽的命令如下:

水槽:

./flume-ng agent --conf /home/training/Downloads/apache-flume-1.6.0-bin/conf/flume-conf.properties.template --name agent flume配置文件如下:agent . sources = seqGenSrc agent.channels = memoryChannel agent.sinks = loggerSink agent.sources.seqGenSrc.type = exec agent.sources.seqGenSrc.command = tail -F /home/training/Desktop/log.txt agent.sources.seqGenSrc.channels = memoryChannel agent.sinks.loggerSink.type = logger agent.sinks.loggerSink.channel = memoryChannel agent.channels.memoryChannel.type = memory agent.channels.memoryChannel.capacity = 100 agent.sinks.loggerSink.type = hdfs agent.sinks .loggerSink.hdfs.path = hdfs:// localhost:54310 / user / training / logs agent.sinks.loggerSink.hdfs.fileType = DataStream

能不能让我知道我错过了什么 .
在此先感谢您的回复 .

1 回答

  • 0

    我注意到两件事:

    • 在命令中使用 --conf 参数,但省略了 --conf-file 参数 . 例如,我开始像这样:

    ./bin/flume-ng agent -Dflume.root.logger=INFO,console --conf ./conf --conf-file ./conf/test.conf --name agent

    • 在您的配置中,首先将接收器的类型设置为 loggerSink ,然后将接收器的类型设置为 hdfs . 我不认为设置水槽的类型两次是你想要的(或Flume想要的) .

    顺便说一句,我重新格式化了你的配置:

    agent.sources=seqGenSrc
    agent.channels=memoryChannel
    agent.sinks=loggerSink
    
    agent.sources.seqGenSrc.type=exec
    agent.sources.seqGenSrc.command=tail -F /home/training/Desktop/log.txt
    agent.sources.seqGenSrc.channels=memoryChannel
    agent.sinks.loggerSink.type=logger
    agent.sinks.loggerSink.channel=memoryChannel
    agent.channels.memoryChannel.type=memory
    agent.channels.memoryChannel.capacity=100
    
    agent.sinks.loggerSink.type=hdfs
    agent.sinks.loggerSink.hdfs.path=hdfs://localhost:54310/user/training/logs
    agent.sinks.loggerSink.hdfs.fileType=DataStream
    

相关问题