当前位置: 首页 > 知识库问答 >
问题:

水槽-TwitterSource语言过滤器

周峻
2023-03-14

我想在下面的情况下请求你的帮助。

  • http://blog.cloudera.com/blog/2012/10/analysing-twitter-data-with-hadoop-part-2-getting-data-with-flume/
  • github.com/cloudera/cdh-twitter-example

我下载了源代码,并在更新了pom.xml中的版本后重新构建了flume-sources:

<flume.version>1.5.0-cdh5.1.2</flume.version>
<hadoop.version>2.3.0-cdh5.1.2</hadoop.version>

工作得很完美。

<!-- For the Twitter API -->
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-stream</artifactId>
<version>3.0.6</version>
</dependency>

当我启动代理时,我得到以下异常(NoSuchMethodError):

无法启动EventDrivenSourceRunner:{source:com.cloudera.flume.source.twitterSource{name:twitter,state:idle}}-出现异常。java.lang.nosuchmethoderror:twitter4j.filterquery.language([ljava/lang/string;)ltwitter4j/filterquery.language([ljava/lang/string;)ltwitter4j/filterquery;在com.cloudera.flume.source.twittersource.start(twittersource.java:165)在org.apache.flume.source.eventdrivensourceRunner.start(eventdrivensourceRunner.start.concurrent.futureTask.runandreset(FutureTask.java:304)在java.util.concurrent.scheduedThreadPoolExecutor$scheduedFutureTask.access$301(ScheduedThreadPoolExecutor.java:178)在java.util.concurrent.scheduledThreadPoolExecutor.java:293)在运行(thread.java:745)

我检查了一下,这个版本的twitter4j-stream包含语言方法

  • github.com/yusuke/twitter4j/blob/3.0.6/twitter4j-stream/src/main/java/twitter4j/filterquery.java

我做错了什么?

提前感谢,

彼得

共有1个答案

莫典
2023-03-14

最后我设法解决了这个问题。所以这是任何面临同样问题的人的解决方案。

首先(在前面的文章中),我将生成的jar放置到/var/lib/flume-ng/plugins.d/twitter-streaming/lib/,并在Cloudera Manager配置中设置它以使用这个位置。

在本例中,CM将此目录放置到运行文件中类路径的and(在parcel目录之后)。因此类路径中的目录顺序如下所示:

不幸的是,在parcel目录中有一个twitter4j-stream-3.0.3.jar和twitter4j-core-3.0.3.jar,flume试图使用它来代替3.0.6,在该版本中,filterquery.language显然不存在。

所以我只是从parcel目录中删除了那些jar,现在它工作得很好。

 类似资料:
  • 本文向大家介绍Swift语言过滤,包括了Swift语言过滤的使用技巧和注意事项,需要的朋友参考一下 示例 通过从流中选择通过特定条件的元素来创建流称为过滤            

  • 贡献者:xixici Apache Thrift 是跨平台跨语言的开发框架。HBase 包含了 Thrift API 和过滤语言。Thrift API 依赖于客户端和服务器进程。 你可以在服务端和客户端维 Thrift 设置安全身份验证,参照 Client-side Configuration for Secure Operation - Thrift Gateway 和 Configure th

  • 我正在尝试使用hdfs水槽运行水槽。hdfs在不同的机器上正常运行,我甚至可以与水槽机器上的hdfs交互,但是当我运行水槽并向其发送事件时,我收到以下错误: 同样,一致性不是问题,因为我可以使用hadoop命令行与hdfs交互(水槽机不是datanode)。最奇怪的是,在杀死水槽后,我可以看到tmp文件是在hdfs中创建的,但它是空的(扩展名仍然是. tmp)。 关于为什么会发生这种情况的任何想法

  • 9.1 用外部语言写过滤器 9.1.1 混合编程场景介绍 本章来讨论 VimL 与其他语言混合编程的话题。这“混合”编程可能不是很准确的定义,也 许涉及不同层面的场景应用。在上一章介绍的异步编程也算是其中一种吧。不过如果所调 用的外部程序是别人已经写好的(或者是系统提供的经典工具),那用户就只能适应其提 供的接口或输出,在 vim 端几乎没什么可干预的。但如果利用通道连接的另一端的程序 ,也要自己

  • 我遇到了Flume的问题(Cloudera CDH 5.3上的1.5): 我想做的是:每5分钟,大约20个文件被推送到假脱机目录(从远程存储中抓取)。每个文件包含多行,每行是一个日志(在JSON中)。文件大小在10KB到1MB之间。 当我启动代理时,所有文件都被成功推送到HDFS。1分钟后(这是我在flume.conf中设置的),文件被滚动(删除. tmp后缀并关闭)。 但是,当在假脱机目录中找到

  • 我想使用 flume 将数据从 hdfs 目录传输到 hdfs 中的目录,在此传输中,我想应用处理形态线。 例如:我的来源是 我的水槽是 有水槽可能吗? 如果是,源水槽的类型是什么?