javaagentをemrsparkアプリケーションに渡す方法は?

サーシャ

uber jvmプロファイラーを使用してsparkアプリケーション(spark 2.4、emr 5.21で実行)をプロファイリングしようとしています

以下は私のクラスター構成です

          [
             {
                "classification": "spark-defaults",
                "properties": {
                   "spark.executor.memory": "38300M",
                   "spark.driver.memory": "38300M",
                   "spark.yarn.scheduler.reporterThread.maxFailures": "5",
                   "spark.driver.cores": "5",
                   "spark.yarn.driver.memoryOverhead": "4255M",
                   "spark.executor.heartbeatInterval": "60s",
                   "spark.rdd.compress": "true",
                   "spark.network.timeout": "800s",
                   "spark.executor.cores": "5",
                   "spark.memory.storageFraction": "0.27",
                   "spark.speculation": "true",
                   "spark.sql.shuffle.partitions": "200",
                   "spark.shuffle.spill.compress": "true",
                   "spark.shuffle.compress": "true",
                   "spark.storage.level": "MEMORY_AND_DISK_SER",
                   "spark.default.parallelism": "200",
                   "spark.serializer": "org.apache.spark.serializer.KryoSerializer",
                   "spark.memory.fraction": "0.80",
                   "spark.executor.extraJavaOptions": "-XX:+UseG1GC   -XX:InitiatingHeapOccupancyPercent=35 -XX:OnOutOfMemoryError='kill -9 %p'",
                   "spark.executor.instances": "107",
                   "spark.yarn.executor.memoryOverhead": "4255M",
                   "spark.dynamicAllocation.enabled": "false",
                   "spark.driver.extraJavaOptions": "-XX:+UseG1GC  -XX:InitiatingHeapOccupancyPercent=35 -XX:OnOutOfMemoryError='kill -9 %p'"
                   },
                "configurations": []
            },
            {
                "classification": "yarn-site",
                "properties": {
                   "yarn.log-aggregation-enable": "true",
                   "yarn.nodemanager.pmem-check-enabled": "false",
                   "yarn.nodemanager.vmem-check-enabled": "false"
                },
                "configurations": []
            },
            {
                "classification": "spark",
                "properties": {
                   "maximizeResourceAllocation": "true",
                   "spark.sql.broadcastTimeout": "-1"
                 },
                 "configurations": []
            },
            {
                 "classification": "emrfs-site",
                 "properties": {
                     "fs.s3.threadpool.size": "50",
                     "fs.s3.maxConnections": "5000"
                  },
                  "configurations": []
            },
            {
                  "classification": "core-site",
                  "properties": {
                     "fs.s3.threadpool.size": "50",
                     "fs.s3.maxConnections": "5000"
                   },
                   "configurations": []
             }

    ]

プロファイラーjarはs3(mybucket/profilers/jvm-profiler-1.0.0.jar)に保存されます。コアノードとマスターノードをブートストラップしながら、次のブートストラップスクリプトを実行します

     sudo mkdir -p /tmp
     aws s3 cp s3://mybucket/profilers/jvm-profiler-1.0.0.jar /tmp/

次のようにemrステップを送信します

       spark-submit --deploy-mode cluster --master=yarn ......(other parameters).........
       --conf spark.jars=/tmp/jvm-profiler-1.0.0.jar --conf spark.driver.extraJavaOptions=-javaagent:jvm-profiler-1.0.0.jar=reporter=com.uber.profiling.reporters.ConsoleOutputReporter,metricInterval=5000 --conf spark.executor.extraJavaOptions=-javaagent:jvm-profiler-1.0.0.jar=reporter=com.uber.profiling.reporters.ConsoleOutputReporter,metricInterval=5000

しかし、ログにプロファイリング関連の出力を表示できません(すべてのコンテナーのstdoutログとstderrログの両方を確認しました)。パラメータは無視されますか?私は何かが足りないのですか?このパラメーターが無視されている理由を確認するために他に確認できることがありますか?

ブラックビショップ

私はUberJVM Profilerを使用していませんspark-submitが、--jarsオプションを使用する必要があります。また、EMRで作業する場合は、S3バケットから直接追加できます。

また、ブートストラップでは、jarjvm-profiler-1.0.0.jar/tmpフォルダーにコピーしていますが、Javaオプションを設定するときに、パスを追加しませんでした。これを試して :

 spark-submit --deploy-mode cluster \
 --master=yarn \
 --conf "spark.driver.extraJavaOptions=-javaagent:/tmp/jvm-profiler-1.0.0.jar=reporter=com.uber.profiling.reporters.ConsoleOutputReporter,metricInterval=5000" \
 --conf "spark.executor.extraJavaOptions=-javaagent:/tmp/jvm-profiler-1.0.0.jar=reporter=com.uber.profiling.reporters.ConsoleOutputReporter,metricInterval=5000" \
 --jars "/tmp/jvm-profiler-1.0.0.jar" \
 --<other params> 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

EMRSparkアプリケーションに小道具ファイルをロードする

分類Dev

webpack envをnodejsアプリケーションに渡す方法は?

分類Dev

アプリケーションをDockerコンテナのSpringBootアプリに渡す方法は?

分類Dev

JavaFXアプリケーションを介して変数をコントローラーに渡す方法は?

分類Dev

DistributedNotificationCenter-アプリケーション間でデータを渡す方法は?

分類Dev

WindowsアプリケーションからWebアプリケーションにデータを渡す方法は?

分類Dev

Onionアーキテクチャアプリケーションで接続文字列をDBContextに渡す方法は?

分類Dev

Eclipseでアプリケーションにコンソール引数を渡す方法は?

分類Dev

コマンドライン引数をWindowsアプリケーションに正しく渡す方法は?

分類Dev

PrismアプリケーションでStartupEventArgsを他のViewModelに渡す方法

分類Dev

ReactJSアプリケーションからRESTAPIに変数を渡す方法

分類Dev

VisualFoxProアプリケーションからAppDomainに構成を渡す方法

分類Dev

JavaFXアプリケーションにパラメーターを渡す方法は?

分類Dev

Gradleアプリケーションプラグイン:-javaagentオプションを指定してjvmアプリケーションを実行するにはどうすればよいですか?

分類Dev

(Android)アプリケーションコンテキストをJavaクラスに渡す方法は?

分類Dev

JavaからJavaScript Webアプリケーションにデータを渡す方法は?

分類Dev

パラメータDataTableをmvcアプリケーションからWebAPIに渡す方法は?

分類Dev

VB6アプリケーションからCDLLにcharパラメータを渡す方法は?

分類Dev

XAMLlビューからCsharpWpfアプリケーションのメソッドに値を渡す方法は?

分類Dev

ホーム画面ウィジェットからアプリケーションに値を渡す方法は?

分類Dev

npm run-scriptを介してnodejsアプリケーションにフラグを渡す方法は?

分類Dev

アプリケーションをAndroidViewModelに渡す

分類Dev

label.textをアプリケーション層に渡す

分類Dev

Java 9 '--permit-illegal-access'フラグをWebstartアプリケーションに渡す方法は?

分類Dev

bashスクリプトからJavaアプリケーションにデータを正しく渡す方法

分類Dev

Androidで1つのアプリケーションから別のアプリケーションにデータを渡す方法

分類Dev

「lnkclass」値を部分ビューからmvcアプリケーションのストアドプロシージャに渡す方法は?

分類Dev

nodejsアプリケーションをGoogleCloudにデプロイする方法は?

分類Dev

nextjsアプリケーションをcpanelにデプロイする方法は?

Related 関連記事

  1. 1

    EMRSparkアプリケーションに小道具ファイルをロードする

  2. 2

    webpack envをnodejsアプリケーションに渡す方法は?

  3. 3

    アプリケーションをDockerコンテナのSpringBootアプリに渡す方法は?

  4. 4

    JavaFXアプリケーションを介して変数をコントローラーに渡す方法は?

  5. 5

    DistributedNotificationCenter-アプリケーション間でデータを渡す方法は?

  6. 6

    WindowsアプリケーションからWebアプリケーションにデータを渡す方法は?

  7. 7

    Onionアーキテクチャアプリケーションで接続文字列をDBContextに渡す方法は?

  8. 8

    Eclipseでアプリケーションにコンソール引数を渡す方法は?

  9. 9

    コマンドライン引数をWindowsアプリケーションに正しく渡す方法は?

  10. 10

    PrismアプリケーションでStartupEventArgsを他のViewModelに渡す方法

  11. 11

    ReactJSアプリケーションからRESTAPIに変数を渡す方法

  12. 12

    VisualFoxProアプリケーションからAppDomainに構成を渡す方法

  13. 13

    JavaFXアプリケーションにパラメーターを渡す方法は?

  14. 14

    Gradleアプリケーションプラグイン:-javaagentオプションを指定してjvmアプリケーションを実行するにはどうすればよいですか?

  15. 15

    (Android)アプリケーションコンテキストをJavaクラスに渡す方法は?

  16. 16

    JavaからJavaScript Webアプリケーションにデータを渡す方法は?

  17. 17

    パラメータDataTableをmvcアプリケーションからWebAPIに渡す方法は?

  18. 18

    VB6アプリケーションからCDLLにcharパラメータを渡す方法は?

  19. 19

    XAMLlビューからCsharpWpfアプリケーションのメソッドに値を渡す方法は?

  20. 20

    ホーム画面ウィジェットからアプリケーションに値を渡す方法は?

  21. 21

    npm run-scriptを介してnodejsアプリケーションにフラグを渡す方法は?

  22. 22

    アプリケーションをAndroidViewModelに渡す

  23. 23

    label.textをアプリケーション層に渡す

  24. 24

    Java 9 '--permit-illegal-access'フラグをWebstartアプリケーションに渡す方法は?

  25. 25

    bashスクリプトからJavaアプリケーションにデータを正しく渡す方法

  26. 26

    Androidで1つのアプリケーションから別のアプリケーションにデータを渡す方法

  27. 27

    「lnkclass」値を部分ビューからmvcアプリケーションのストアドプロシージャに渡す方法は?

  28. 28

    nodejsアプリケーションをGoogleCloudにデプロイする方法は?

  29. 29

    nextjsアプリケーションをcpanelにデプロイする方法は?

ホットタグ

アーカイブ