2017-05-25 1 views
0

私はFlinkクラスタをセットアップしました。私はJobManagerとTaskManagersのログとstdoutを表示したいと考えています。私は、Web UIに行くとき、私はそれぞれのタブに次のエラーメッセージを参照してください。Web ui経由でログを記録するためのFlinkクラスタの設定方法は?

JobManager: 
    Logs 
     (log file unavailable) 
    Stdout 
     (stdout file unavailable) 

TaskManager 
    Logs 
     Fetching TaskManager log failed. 
    Stdout 
     Fetching TaskManager log failed. 

私は特にtaskmanager.log.pathjob manager.web.log.pathenv.log.dir、設定することができ、いくつかの設定パラメータがあることがわかります。ただし、これらがネットワークアクセス可能なパスであるかローカルパスであるかは言及されていません。

タスクマネージャとジョブマネージャのログを表示するには、何が必要ですか?

+0

お使いのオペレーティングシステムはどちらですか? Flinkをどのように導入しましたか?ログファイルがマシン( 'log /'ディレクトリ内)に存在するかどうか、存在する場合はエラーが含まれているかどうかを確認しましたか? –

+0

Centos7、Kubernetes経由で展開されています。ジョブを実行しているタスクマネージャを実行しているコンテナに移動すると、Flinkがインストールされている 'log'ディレクトリの中に何も表示されません(これは'/opt/flink/log'です)。しかし、コンテナコンソールからFlinkログが表示されます。 Flinkは、私が見ることのできるものからok(クラスタとジョブの両方)を実行しているように見えます。 – John

+0

ああ、大丈夫です。私は "問題"は、ドッカーの画像がログファイルに記録されているのではなく、標準化されているということです。 log4jプロパティを採用してファイルにもログオンできますか? –

答えて

0

JobManager Web UIは、TaskManagerログをリモートで要求するため、共有ファイルシステムに常駐する必要はありません。一方、JobManagerのログは、ローカルファイルシステムから読み取られるように見えます。

デフォルトのlog4j.propertiesでは、すべてのログファイルは、プロパティで指定されたパスにと書き込まれます。となります。デフォルトのFlink開始スクリプトでは、このプロパティのディレクトリはenv.log.dir設定オプション(FLINK_LOG_DIR変数)によって制御されます。

taskmanager.log.pathログがの場合にのみ、JobManagerのTaskManagerからが要求されたようです。ただし、設定されていない場合はlog.fileにフォールバックされ、正しいディレクトリが自動的に使用されるはずです。同様に、が設定されていると、jobmanager.web.log.pathはまったく使用されません。

したがって、私はtaskmanager.log.pathjobmanager.web.log.pathは生産の展開に関連していると彼らは(my corresponding Flink bug reportを参照)を使用することになっているか言うことができないとは思いません。ログファイルの場所を制御するには、env.log.dirを設定することができます。このログファイルの場所は、原則としてWeb UIでも使用できます。

+0

私はenv.log.dirを設定する場所が不思議です。私はそれをflink-conf.yaml:/ opt/flink/logに設定しようとしました。それは完全に無視されているようです。しかし、jobmanager.web.log.path:/opt/flink/log/output.logを追加すると、webuiは少なくともログを表示します。 – buddy

+0

@buddy 'env.log.dir'は[YAML設定から読み込まれません](https://github.com/apache/flink/blob/release-1.4.0/flink-dist/src/main/flink-環境変数 'FLINK_LOG_DIR'が設定されている場合はbin/bin/config.sh#L279)、それがあなたの環境で定義されているかどうかを確認することができます。あなたがFlinkをどのくらい正確に始めるかによって、それは例えば開始スクリプトに明示的に設定する必要があります。 – F30

関連する問題