Flume 1.2.0自定义源

时间:2012-11-02 19:36:05

标签: java hadoop flume

我有一个自行开发的事件收集和处理框架,我希望用Apache Flume 1.2.0替代它,因为我们将开始将数据加载到Hadoop中。由于Flume没有HTTP Source,我正在编写一个带有嵌入式Tomcat服务器的自定义源代码。我正在关注http://flume.apache.org/FlumeUserGuide.html#custom-source的文档,但是当我开始时,我得到以下异常:

  

java.lang.IllegalArgumentException:没有已知的源类型的转轮类型   com.xxx.xxx.flume.TestSource@5219f360 at   org.apache.flume.SourceRunner.forSource(SourceRunner.java:54)at   org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.loadSources(PropertiesFileConfigurationProvider.java:340)     在   org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.load(PropertiesFileConfigurationProvider.java:222)     在   org.apache.flume.conf.file.AbstractFileConfigurationProvider.doLoad(AbstractFileConfigurationProvider.java:123)     在   org.apache.flume.conf.file.AbstractFileConfigurationProvider.access $ 300(AbstractFileConfigurationProvider.java:38)     在   org.apache.flume.conf.file.AbstractFileConfigurationProvider $ FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:202)     在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)     在   java.util.concurrent.FutureTask中$ Sync.innerRunAndReset(FutureTask.java:351)     在java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)     在   java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.access $ 301(ScheduledThreadPoolExecutor.java:178)     在   java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:603)     在java.lang.Thread.run(Thread.java:722)

1 个答案:

答案 0 :(得分:1)

我想我想通了。 Flume网站上的文档没有提到自定义实现应该实现的不是Source接口,而是EventDrivenSource或PollableSource接口。