私はSpark 2.1.0とScala 2.11.8を持つAmazon EMRを使用しています。
私はコンパイルして太ったJarを作成するのは不思議ですが、Scala 2.11.11を使用するのは大丈夫ですか?私はfat Jarを作成するとき、EMRで異なるScalaバージョンを使用してもよろしいですか?
答えて
EMRファットジャーを正しいスカラーバージョンで構築することができる方が良い。これは難しいことではありません。私はあなたが脂肪のジャーを構築するためにsbtアセンブリを使用すると思います。この場合、あなたのbuild.sbt
に次の行を追加します crossScalaVersions := Seq("2.11.8", "2.11.11")
その後のsbtシェル型reload
にこの新しい設定を有効にします。 あなたは2.11.8に対するアセンブリ脂肪ジャーにしたいとき、あなたはコマンドを次のsbtコンソールで入力します。
++ 2.11.8
assembly
あなたは2.11.11のためにローカルでコンパイルするか、2.11.11のための脂肪のjarを構築したいですsbtコンソールでそのバージョンに切り替えるだけです。例:
++ 2.11.11
compile
私はチェックして、それは私のために働いています。ここに私のsbtコンソールからのログがあります:
sbt:TestAssembly> ++ 2.11.8
[info] Setting Scala version to 2.11.8 on 1 projects.
[info] Reapplying settings...
[info] Set current project to TestAssembly (in build file:/ssd2/projects/TestAssembly/)
sbt:TestAssembly> assembly
[info] Including from cache: scala-library-2.11.8.jar
[info] Checking every *.class/*.jar file's SHA-1.
[info] Merging files...
[warn] Merging 'META-INF/MANIFEST.MF' with strategy 'discard'
[warn] Strategy 'discard' was applied to a file
[info] Packaging /ssd2/projects/TestAssembly/target/scala-2.11/testStep.jar ...
[info] Done packaging.
[success] Total time: 2 s, completed Nov 29, 2017 12:07:46 PM
sbt:TestAssembly> ++ 2.11.11
[info] Setting Scala version to 2.11.11 on 1 projects.
[info] Reapplying settings...
[info] Set current project to TestAssembly (in build file:/ssd2/projects/TestAssembly/)
sbt:TestAssembly> assembly
[info] Updating {file:/ssd2/projects/TestAssembly/}testassembly...
[info] Done updating.
[info] Compiling 2 Scala sources to /ssd2/projects/TestAssembly/target/scala-2.11/classes ...
[info] Non-compiled module 'compiler-bridge_2.11' for Scala 2.11.11. Compiling...
[info] Compilation completed in 13.098s.
[info] Done compiling.
[info] Including: scala-library-2.11.11.jar
[info] Checking every *.class/*.jar file's SHA-1.
[info] Merging files...
[warn] Merging 'META-INF/MANIFEST.MF' with strategy 'discard'
[warn] Strategy 'discard' was applied to a file
[info] SHA-1: b0a0cc7ec39ca359187a0b24f303c376b1f2d71f
[info] Packaging /ssd2/projects/TestAssembly/target/scala-2.11/testStep.jar ...
[info] Done packaging.
[success] Total time: 17 s, completed Nov 29, 2017 12:10:37 PM
sbt:TestAssembly>
ご覧のとおり、それぞれの場合に適切なスカラーライブラリのjarが含まれています。
ありがとうございました。質問があります。私がsbt-assemblyを使ってfat Jarをビルドすると、Scala version 2.11.11を使用するとfat-jarがうまく動作します。 e.x)build.sbt、scalaVersion:= "2.11.11"。なぜこの太ったJarはスカラーバージョン2.11.8を持つEMRでうまく動作しますか?あなたはそれについて答えることができますか? – Ashe
おそらくこれは主題の一部を説明することができます:https://docs.scala-lang.org/overviews/core/binary-compatibility-of-scala-releases.html –
- 1. maven外部ライブラリを使ってfat jarを作成します
- 2. ProguardとSBTでfat Scala Jarを難読化する方法
- 3. Gradleを使用して "fat-JAR"を作成するとlog4j.propertiesが上書きされる
- 4. OpenGL 1.1を使用してもよろしいですか?
- 5. オンデマンドでGradleでNON-FAT jarを作成する
- 6. 私のアプリのタブバーに公式のiPhoneの作成アイコンを使用してもよろしいですか?
- 7. sbt-assemblyでマルチプロジェクトfat jarを作成する方法
- 8. Mavenプロジェクトの "fat jar"を作るには? IntelliJのを使用して
- 9. .jarファイルを使用して.jarファイルを作成するにはどうすればよいですか?
- 10. 正しいバージョンのscalaでjarを実行する
- 11. Mavenは私が期待しているものより古いバージョンを使用しているようです
- 12. Worklight:異なるバージョンのdesktopwebappを作成できますか?
- 13. Drupal 8で$ _SESSION ['variables']を使用してもよろしいですか?
- 14. EMRはHDFSのmoveFromLocalFile APIを使用しているときに0バイトのファイルを作成します
- 15. 管理者は新しい列を作成できますか?私がやろうとしている何
- 16. gulpを使用してNuGetパッケージを作成するときにCSPROJバージョンを使用できますか?
- 17. ドッカーがバージョン2でコンテナを作成しなおしてはいけないときに再作成する
- 18. ストレージとしてEMRFS(s3バケット)を使用してEMR 5.3.0を作成します。
- 19. Scalaのリフレクションでパラメータコンストラクタを使用してクラスを作成する
- 20. なぜ、sbtはbuild.sbtとは異なるScalaバージョンをダウンロードしますか?
- 21. 私はこのようなものを作成しようとしている
- 22. WPFで2x2グリッドのスタイルを作成することはできますか?私はこのような何かをやろうとしている
- 23. 異なるクラウドプロバイダーのノードを使用してドッカークラスタークラスターを作成することはできますか?
- 24. for-comprehenion/yieldを使用してScalaで地図を作成できますか?
- 25. MAVで外部JARを使用してJARを作成する問題
- 26. Mavenでもっとも基本的なScalaプロジェクトを作成しますか?
- 27. Git/BitBucketを使用しているとき、私は別のバージョンのアプリケーションで作業しますか?
- 28. 私はCKEditorバージョンを使用してchartjsプラグインでチャートを作成CKEditorバージョンのプラグイン
- 29. Pythonでtkinterを使ってログインページを作成しようとしても動作しないようです。
- 30. behatでリポジトリをテストしてもよろしいですか?
短い答えはいいえです。 –
2.11.8のためにファットジャーを作りましょう。 fat jarの作成に使用すると思われるsbt-assemblyプラグインではうまくいきませんが、 'crossScalaVersions' SBT設定を使用して、2.11.8と2.11.11の両方のバージョンを指定してから' 2.11.8の助けを借りて2.11.8に切り替えてください:http://www.scala-sbt.org/1.0/docs/Cross-Build.html –