0

HDFS シンクのデフォルト設定で Cygnus 0.5 を使用しています。実行するために、「ds」インターセプターを無効にしました(そうしないと、一致するテーブルファイルが見つからないことに関連して、開始時にCygnusの開始を妨げるエラーが発生します)。

Cygnus は動作しているように見えますが、HDFS でエンティティー情報が格納されているファイルが "null.txt" という奇妙な名前になっています。どうすればこれを修正できますか?

4

2 に答える 2

0

まず、インターセプターを無効にしないでください。DestinationExtractorこれは、Orion によって通知されたコンテキスト データが保持される宛先を推測するコードです。送信先が HDFS ファイル名、MySQL テーブル名、または CKAN リソース名を参照している可能性があることに注意してください。これは、構成したシンクによって異なります。推測されると、宛先は内部 Flume イベントにヘッダーとして追加されdestination、シンクが保持する場所を知るために呼び出されます。したがって、非アクティブ化されている場合、そのようなヘッダーはシンクによって検出されず、null名前が宛先名として使用されます。

あなたが経験した「一致するテーブル ファイルが見つかりません」という問題 (および Interceptor を非アクティブ化する原因となった) に関しては、Cygnus 構成テンプレートのcygnusagent.sources.http-source.interceptors.de.matching_tableパラメーターのデフォルト値が不適切であったことが原因でした。これは Cygnus 0.5.1 で解決されました。

于 2014-10-14T18:14:57.157 に答える
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 に答える