2

基本的なフルーム機能のテストとして、ファイルを source/sink にセットアップしました。

現在、「exec」ソースを使用しており、コマンドは「tail -F mytmpfile」です。

私のスクリプトでは、継続的に "....." >> mytmpfile をエコーし​​て、 tail コマンドがストリームを構成するようにします。

ただし、flume ログに次の例外が表示されるようになりました。

java.lang. IllegalStateException: チャネルが閉じられました [channel=c1]。java.lang.NullPointerException: null at org.apache.flume.channel.file.FileChannel.createTransaction(FileChannel.java:353) at org.apache.flume.channel.BasicChannelSemantics.getTransaction(BasicChannelSemantics.java:122) によるorg.apache.flume.sink.RollingFileSink.process(RollingFileSink.java:183) org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68) org.apache.flume.SinkRunner$PollingRunner.run( SinkRunner.java:147) で java.lang.Thread.run(Thread.java:662) 原因: java.lang.NullPointerException at org.apache.flume.channel.file.Log.writeCheckpoint(Log.java:895) org.apache.flume.channel.file.Log.replay(Log.java:406) で org.apache.flume.channel.file.FileChannel.start(FileChannel.java:

この NullPointerException がどこから来ているかについて何か考えはありますか? コードをスキャンすると、見つからないフォルダーまたはディレクトリに関連している可能性があります。しかし、git ハブ ブランチで正確な行が見つかりません。

これは apache-flume-1.3.1.23-... を使用しています

4

1 に答える 1

2

過去にファイル チャネルで問題が発生したことがありますが、通常は次の 2 つの問題に要約されます。

dataDirs1) 同じボックスで複数のエージェントを実行している場合は、別々の とを持つように構成してくださいcheckpointDir

2) Linux ボックスでは、tmpfs がその容量に近づいていないことを確認します。いっぱいになると、flume が文句を言います。Flume エージェントを停止し、tmpfs をアンマウントして、サイズを拡大し、エージェントを再マウントして再起動してください。

于 2013-05-20T15:16:31.273 に答える