水路ソースファイルの名前を変更する接頭辞と接尾辞のソースコードの実装を変更

ビジネスシナリオ:

デマンド:データはHDFSを生産し続けるために、水路によってローカル収集csvファイル(Windowsサーバ)を収集しました。

質問:ローカルファイルを生成する過程では、ファイル名は現象を繰り返すことになります。言い換えれば、前者は1が第二aaa.csvにちなんで名付けられたファイルを生成し、ファイルは、ファイル名は、ファイル名は、デフォルトでaaa.csv.COMPLATEDに変更されます水路の変化を介して処理されるが、二秒になりますそのファイルは、水路リネームの方法を処理した時は、aaa.csv生成されたファイルを、続いて、誤差は例えば、次のようになります。

ED1C3E2B-E2D0-4a01-9DC5-240D660057AA

解決策:水路のプログラムをぶら下げ問題の原因重複するファイル名を避けるために、2つのソリューションがあります。

1:生成aaa.csvの過程で一意のファイル名を識別することを添加

2:キャプチャファイルの後水路、その一意に行わ識別するファイル名を変更します

これは方法のソースコードを変更することによって、第二の方法を導入します。

まず、水路、輸入、コンパイルのソースコードをダウンロード

私はここにバージョンを使用していますことはflume1.9です

1つのダウンロード

    水路ダウンロードパッケージ:パッケージダウンロード

    水路ソースをダウンロードします。ソースのダウンロード

第2の導入IDEA

次のようにソースパッケージ解凍解凍後、解凍した後、結果を一覧表示します:

画像

IDEAインポートプロジェクト

画像

画像

[次へ]をクリックして続行し、

画像

導入に成功した後、プロジェクト構造は以下の通り:

画像

私たちは、構成構造に各モデルを通じてプロジェクトを見ることができます。

3.コンパイル

コマンドを実行します。クリーンインストールMVN -Dmaven.test.skip =真

画像

BUILD SUCCESSがコンパイルを表し参照して、次のステップで成功しています

ソースコードを変更します。

データを収集した後、クラスのモバイルディレクトリを、このクラスは水路-ngのコアで、一般的にこのモデルですが、クラスのことを具体的には、我々が収集ログ水路から見つけることができる水路を見つけるために行われるべきです

画像

私たちは、このログからファイルを収集した後、モバイルのソースファイルを操作するための水路の必要性を確認し、この時点で行われるファイルの名前を変更するので、私たちはグローバルな検索により、ソースコード内のクラスを見つけることができますすることができます

画像

ここでのレッドボックスは、場所の名前を変更するには、完全なデータ・ソース・ファイルを収集した後、デフォルトの名前は「.COMPLATED」である水路は、この時点で、我々は一意に私は、タイムスタンプの道を増やすことで、ここで、ファイルに区別される場合は、次のとおりです。

画像

添加が完了した後、クラスが水路ラインlibディレクトリの下に水路-NG-core.jarパッケージにすることができ、対応するターゲットファイルを検索し、対応するクラスファイル悲しいかな、再コンパイル、コピーを置き換え、コピー。もちろん、あなたがプロジェクト全体のパッケージを再コンパイルするが、その場合にのみ、比較的小さなトラブルにすることができます。

画像

パッケージにはへコンパイル済みのクラスファイルにカバーを開くには、他の圧縮ツールを使ってjarファイル圧縮の上に360を使用しています

その後、再実行して水路を、あなたは、ファイル名の接尾辞になるだろう、この時間を見ることができます:

画像

実装を成功。

おすすめ

転載: www.cnblogs.com/Gxiaobai/p/12230022.html