2

我写了一个接收器直接写入 cassandra 数据库。我还为水槽代理提供了所有必要的 cassandra 依赖项。但是在执行时,我收到一个错误

015-04-30 00:53:25,736 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:149)] Unhandled error
java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet()Ljava/util/Set;
    at com.datastax.driver.core.Cluster$ConnectionReaper.<init>(Cluster.java:2065)
    at com.datastax.driver.core.Cluster$Manager.<init>(Cluster.java:1163)

现在这是因为 cassandra jar 需要 guava-16.0.1.jar。我已经提供了,但我看到 Flume 选择了默认在 CDH5 中提供的 guava-11.XXjar。

像 job.getConfiguration().set("mapreduce.job.user.classpath.first", "true");

我怎么能告诉水槽先拿起我的罐子

4

1 回答 1

1

您是否已经在下面安装了新的接收器(打包为 .jar 文件)[APACHE_FLUME_HOME]/plugins.d/mynewsink/lib?相关依赖项应该在[APACHE_FLUME_HOME]/plugins.d/mynewsink/libext.

您还可以将 .jar 文件与依赖项一起打包,而不是将它们放入libext.

于 2015-04-30T11:06:24.487 回答