HDFS シンクのデフォルト設定で Cygnus 0.5 を使用しています。実行するために、「ds」インターセプターを無効にしました(そうしないと、一致するテーブルファイルが見つからないことに関連して、開始時にCygnusの開始を妨げるエラーが発生します)。
Cygnus は動作しているように見えますが、HDFS でエンティティー情報が格納されているファイルが "null.txt" という奇妙な名前になっています。どうすればこれを修正できますか?
HDFS シンクのデフォルト設定で Cygnus 0.5 を使用しています。実行するために、「ds」インターセプターを無効にしました(そうしないと、一致するテーブルファイルが見つからないことに関連して、開始時にCygnusの開始を妨げるエラーが発生します)。
Cygnus は動作しているように見えますが、HDFS でエンティティー情報が格納されているファイルが "null.txt" という奇妙な名前になっています。どうすればこれを修正できますか?
まず、インターセプターを無効にしないでください。DestinationExtractor
これは、Orion によって通知されたコンテキスト データが保持される宛先を推測するコードです。送信先が HDFS ファイル名、MySQL テーブル名、または CKAN リソース名を参照している可能性があることに注意してください。これは、構成したシンクによって異なります。推測されると、宛先は内部 Flume イベントにヘッダーとして追加されdestination
、シンクが保持する場所を知るために呼び出されます。したがって、非アクティブ化されている場合、そのようなヘッダーはシンクによって検出されず、null
名前が宛先名として使用されます。
あなたが経験した「一致するテーブル ファイルが見つかりません」という問題 (および Interceptor を非アクティブ化する原因となった) に関しては、Cygnus 構成テンプレートのcygnusagent.sources.http-source.interceptors.de.matching_table
パラメーターのデフォルト値が不適切であったことが原因でした。これは Cygnus 0.5.1 で解決されました。
Cygnus 0.5.1 がリリースされるまでの回避策は次のとおりです。
DestinatonExtractor
(@frbが彼の回答で述べているように)touch /tmp/dummy_table.conf
、cygnus 構成ファイルに設定します。cygnusagent.sources.http-source.interceptors.de.matching_table = /tmp/dummy_table.conf