0

を使用して K8s クラスターで実行しようとしている、Java で記述された非常に小さな Spark アプリケーションがありますspark-submit/opt/spark/jars/my.jarSpark バイナリ、必要なすべての依存関係を含む uber-JAR ファイル ( )、および構成ファイル ( ) を使用してイメージをビルドしました/opt/spark/conf/some.json

私のコードでは、私は

SparkSession session = SparkSession.builder()
.appName("myapp")
.config("spark.logConf", "true")
.getOrCreate();

Path someFilePath = FileSystems.getDefault().getPath("/opt/spark/conf/some.json");
String someString = new String(Files.readAllBytes(someFilePath));

readAllBytesSpark ドライバーからこの例外を取得します。

java.nio.file.NoSuchFileException: /opt/spark/conf/some.json

/opt/spark/conf/some.jsonDocker イメージを手動で実行すると、期待どおりにファイルが確実に表示されます。私の Spark ジョブはルートとして実行されるため、ファイルのアクセス許可は問題になりません。

ファイルが実際に存在する同じ Docker イメージがドライバー (およびエグゼキューターですが、その時点までは到達していません) を開始するために使用されるため、アプリケーションでファイルを使用できるはずです。そうではありませんか?ファイルが表示されないのはなぜですか?

4

1 に答える 1