Flume 1.6中的定制Flume接收器部署

时间:2016-01-21 10:37:35

标签: java flume flume-ng

我正在使用Flume 1.6并拥有自定义接收器实现。我已经构建了一个包含所有必要依赖项的JAR文件,并将其放在<FLUME_DIR>/plugins.d/MySink/lib/MySink.jar

据我所知,通过阅读可用资源,如果我将我的JAR文件放在plugins.d目录下,则必须在运行flume-ng时自动解析类路径。但是,我得到以下异常堆栈,说明我的接收器实现中的主类无法加载:

  

org.apache.flume.FlumeException:无法加载接收器类型:       MySink,课程:MySink

问题:我是否应该在Flume的配置文件中进行任何进一步的特定设置?将JAR文件放在目录结构下是不够的,即:

<FLUME_DIR>/plugins.d/MySink/lib/MySink.jar 

...谢谢

EXCEPTION TRACE:

2016-01-21 10:52:51,500 (conf-file-poller-0) [INFO -org.apache.flume.node.AbstractConfigurationProvider.loadChannels(AbstractConfigurationProvider.java:200)] Created channel kafkaChnl2
2016-01-21 10:52:51,501 (conf-file-poller-0) [INFO - org.apache.flume.source.DefaultSourceFactory.create(DefaultSourceFactory.java:41)] Creating instance of source httpSource, type http
2016-01-21 10:52:51,576 (conf-file-poller-0) [INFO - org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:42)] Creating instance of sink: myownsink, type: MySink
2016-01-21 10:52:51,576 (conf-file-poller-0) [DEBUG - org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:63)] Sink type MySink is a custom type
2016-01-21 10:52:51,578 (conf-file-poller-0) [ERROR - org.apache.flume.node.
PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.
run(PollingPropertiesFileConfigurationProvider.java:142)] 

Failed to load configuration data. Exception follows.
org.apache.flume.FlumeException: Unable to load sink type: 
MySink, class: MySink
at 
    org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:71)
at org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:43)
at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:410)
at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:98)
at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(    ScheduledThreadPoolExecutor.java:180)
at  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Schedul edThreadPoolExecutor.java:294)
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)
Caused by: java.lang.ClassNotFoundException: MySink
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at   org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:69)

0 个答案:

没有答案
相关问题