0

我正在使用 Cygnus 0.5 和 HDFS 接收器的默认配置。为了让它运行,我已经停用了“ds”拦截器(否则我在启动时收到一个错误,阻止 Cygnus 启动,与找不到匹配的表文件有关)。

Cygnus 似乎可以工作,但实体信息存储在 HDFS 中的文件有一个奇怪的名称:“null.txt”。我怎样才能解决这个问题?

4

2 回答 2

0

Cygnus 0.5.1 发布时的解决方法是:

  • 不要停用DestinatonExtractor(正如@frb 在他的回答中所说)
  • 创建一个空的匹配表文件,用于matching_table配置,即:touch /tmp/dummy_table.conf然后在cygnus配置文件中设置:cygnusagent.sources.http-source.interceptors.de.matching_table = /tmp/dummy_table.conf
于 2014-10-15T08:58:41.680 回答
0

首先不要停用DestinationExtractor拦截器。这是一段代码,用于推断 Orion 通知的上下文数据将被持久化的目的地。请注意,destination 可能指的是 HDFS 文件名、MySQL 表名或 CKAN 资源名,这取决于您配置的接收器。一旦推断出来,目的地就会被添加到内部 Flume 事件中,作为调用的标头destination,以便接收器知道要在哪里保存。因此,如果停用,则接收器找不到这样的标头,并且将null名称用作目标名称。

关于您遇到的“未找到匹配表文件”问题(导致您停用拦截器),这是由于 Cygnus 配置模板的cygnusagent.sources.http-source.interceptors.de.matching_table参数默认值错误。这已在 Cygnus 0.5.1 中解决。

于 2014-10-14T18:14:57.157 回答