【问题标题】:Unhandled error java.lang.NoSuchMethodError while running flume for downloading twitter data运行 Flume 以下载 Twitter 数据时出现未处理的错误 java.lang.NoSuchMethodError
【发布时间】:2015-10-31 17:31:42
【问题描述】:

当我运行这个命令时

hduser@ubuntu:/usr/local/flume$ bin/flume-ng agent --conf ./conf/ -f conf/twitterflume-agent.conf -Dflume.root.logger=DEBUG,console -n TwitterAgent

水槽正在启动,但一段时间后它抛出了不允许下载水槽的异常。我收到以下错误:

2015-10-31 10:18:32,152 (conf-file-poller-0) [INFO - org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:40)] Creating instance of sink: HDFS, type: hdfs

2015-10-31 10:18:35,386 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:149)] Unhandled error
java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.refreshAfterWrite(JLjava/util/concurrent/TimeUnit;)Lcom/google/common/cache/CacheBuilder;
    at org.apache.hadoop.security.Groups.<init>(Groups.java:97)
    at org.apache.hadoop.security.Groups.<init>(Groups.java:74)
    at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:303)
    at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:283)
    at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:260)
    at org.apache.hadoop.security.UserGroupInformation.isAuthenticationMethodEnabled(UserGroupInformation.java:337)
    at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:331)
    at org.apache.flume.sink.hdfs.HDFSEventSink.authenticate(HDFSEventSink.java:491)
    at org.apache.flume.sink.hdfs.HDFSEventSink.configure(HDFSEventSink.java:240)
    at org.apache.flume.conf.Configurables.configure(Configurables.java:41)
    at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:418)
    at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:103)
    at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

出现此错误后,它尝试检查但下载数据失败。

2015-10-31 10:28:05,446 (conf-file-poller-0) [DEBUG - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:126)] Checking file:conf/twitterflume-agent.conf for changes
[enter image description here][1]

我是 Hadoop 和 Flume 的新手。

【问题讨论】:

    标签: java hadoop flume flume-ng flume-twitter


    【解决方案1】:

    好像是编译和运行时库不兼容。 编译代码和运行代码时存在的库之间存在差异。

    在运行 Flume 代码时检查您是否提供了正确的类路径。 在运行代理的节点上,运行ps aux|grep flume检查类路径。

    另外请注意,如果您更改 Twitter 代码并增加库,则会导致此问题,因为 Flume 也带有自己的 Twitter 源。在这种情况下,要么删除 Twitter jar,要么最好从类路径中删除 Flume 的 twitter jar。

    【讨论】:

      猜你喜欢
      • 2020-01-22
      • 2011-09-05
      • 1970-01-01
      • 2016-05-20
      • 2015-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多