2016-09-29 5 views
1

フォローアップhereメトリックシステムがアプリケーションジャーナル内のカスタムソース/シンクを認識しない

私はアプリケーションのjarにカスタムソースとシンクを追加し、スタンドアロンのクラスタノードで静的な固定metrics.propertiesを取得する方法を見つけました。私のアプリケーションを起動したいとき、私は静的パスを与えます - spark.metrics.conf = "/ fixed-path/to/metrics.properties"カスタムソース/シンクが私のコード/ fat-jarにあるにもかかわらず、私はCustomSinkでClassNotFoundExceptionを取得します。

私のfat-jar(カスタムソース/シンクコード付き)はhdfs上にあり、すべてのユーザーに読み取りアクセスできます。

  1. spark.executor.extraClassPath = HDFS://パスを

    は、だからここに私はすでに(執行は、私のアプリケーションの脂肪ジャーにカスタムソース/シンクを見つけることができないため)を設定しようとしたものをすべてです/に/脂肪ジャー

  2. spark.executor.extraClassPath =脂肪のjar-name.jar
  3. spark.executor.extraClassPath = ./fat-jar-name.jar
  4. spark.executor.extraClassPath =。/
  5. spark.executor.extraClassPath =/dir/on/cluste r/*(ファイルレベルではないが、ディレクトリが増えている - アプリケーションを起動する前に絶対的な名前を与えるためにランダムなアプリケーションIDまたはドライバIDを知る方法がない)

(私が間違っているなら、私を修正してください)のエグゼキュータは、このような場合のために初期化取得されている方法です -

  1. ドライバjarファイルの場所がありますここに告げる - HDFS:ここ//../fat-jar.jarとは、のようないくつかのプロパティですspark.executor.memoryなど
  2. N個の実行者がクラスタ上でスピンアップ(構成によって異なる)
  3. hdfs://../fat-jar.jarのダウンロードを開始しますが、その間にメトリクスシステムを初期化します(? - これは確かに分かりません)
  4. カスタムシンク/ソースファイルを探しているメトリックシステム - metrics.propertiesに記載されているので - ファットジャーのダウンロードが完了する前(実際にはこれらすべてのファイルがあります)(これは私の仮説です)
  5. ClassNotFoundException - CustomSinkが見つかりません!

私の理解は正しいですか?また、他に何か試すことができますか?誰かがカスタムソース/シンクに関する経験を持っているなら、どんな助けもありがたいです。

答えて

0

カスタムソース/シンクを使用するには、spark-submit --filesを使用して配布し、spark.executor.extraClassPathで設定する必要があります。

関連する問題