Я занимаюсь разработкой приложения на Java Spark. Сгенерировал и успешно загрузил .jar
в кластер EMR. Есть одна строка кода, которая гласит:
JsonReader jsonReader = new JsonReader(new FileReader("s3://naturgy-sabt-dev/QUERY/input.json"));
Я на 100% уверен:
- Такой файл существует.
- При выполнении
aws s3 cp s3://naturgy-sabt-dev/QUERY/input.json .
Я правильно получаю файл .json
. - Политики IAM установлены таким образом, чтобы у связанной роли EMR были права на чтение, запись и список.
- Этот пост о том, какчтение из S3 в EMR не помогает.
При отправке искры jar
я получаю следующую ошибку: (Обратите внимание на печать маршрута, которым он будетпрочитайте прямо перед вызовом приведенного выше выражения Java, поставьте)
...
...
...
19/12/11 15:55:46 INFO BlockManagerMaster: Registered BlockManager BlockManagerId(driver, 172.31.36.11, 35744, None)
19/12/11 15:55:46 INFO BlockManager: external shuffle service port = 7337
19/12/11 15:55:46 INFO BlockManager: Initialized BlockManager: BlockManagerId(driver, 172.31.36.11, 35744, None)
19/12/11 15:55:48 INFO EventLoggingListener: Logging events to hdfs:///var/log/spark/apps/local-1576079746613
19/12/11 15:55:48 INFO SharedState: Warehouse path is 'hdfs:///user/spark/warehouse'.
#########################################
I am going to read from s3://naturgy-sabt-dev/QUERY/input.json
#########################################
java.io.FileNotFoundException: s3:/naturgy-sabt-dev/QUERY/input.json (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
...
...
...
Кто-нибудь знает, что происходит?
Спасибо за любую помощь, которую вы можете предоставить.