Nano Hash - криптовалюты, майнинг, программирование

Spark-приложение к локальному каталогу

ПРОБЛЕМА

Ошибка приложения Spark из-за того, что не удалось создать Mkdirs. Я использую spark 1.6.3, не могу сохранить вывод в моем локальном каталоге.

java.io.IOException: Mkdirs failed to create file:/home/zooms/output/sample1/sample1.txt/_temporary/0/_temporary/attempt_201709251225_0005_m_000000_10
 (exists=false, cwd=file:/grid/1/hadoop/yarn/local/usercache/zooms/appcache/application_1504506749061_0086/container_e01_1504506749061_0086_01_000003)

Обновлены журналы

17/09/25 13:39:02 WARN TaskSetManager: Lost task 0.0 in stage 5.0 (TID 10, worker3.hdp.example.com): java.io.IOException: Mkdirs failed to create file:/home/zooms/output/sample1/sample1.txt/_temporary/0/_temporary/attempt_201709251339_0005_m_000000_10 (exists=false, cwd=file:/grid/1/hadoop/yarn/local/usercache/zooms/appcache/application_1504506749061_0099/container_e01_1504506749061_0099_01_000003)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:456)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:442)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:930)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:823)
    at org.apache.hadoop.mapred.TextOutputFormat.getRecordWriter(TextOutputFormat.java:123)
    at org.apache.spark.SparkHadoopWriter.open(SparkHadoopWriter.scala:91)
    at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1$$anonfun$13.apply(PairRDDFunctions.scala:1191)
    at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1$$anonfun$13.apply(PairRDDFunctions.scala:1183)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
    at org.apache.spark.scheduler.Task.run(Task.scala:89)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:227)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Код:

val output = "file:///home/zooms/output/sample1/sample1.txt" 
result.coalesce(1).saveAsTextFile(output)

РЕШЕНИЕ

Убедитесь, что весь кластер имеет доступ к локальному или определенному каталогу. В моем случае кластер или искровые исполнители не имеют доступа к определенному каталогу.


  • Можете ли вы предоставить больше журналов ошибок и строку кода, которая выдает эту ошибку? 25.09.2017
  • @RameshMaharjan добавил обновленные журналы 25.09.2017
  • Может быть, у вас нет прав на запись в эту папку? 25.09.2017
  • я уже добавил зумы (учетная запись пользователя) в группу hdfs 25.09.2017
  • Трудно помочь без вашего кода. Можете ли вы поделиться своим кодом сохранения вывода? 25.09.2017
  • @RameshMaharjan добавил код, сохраняющий мой вывод 26.09.2017
  • в вашем сообщении об ошибке выходная папка указана как /home/zooms/output/sample1/..., но вы использовали /home/zooms/20170926/... в своем коде. Так что либо вы вставили неверный код, либо изменили выходной путь где-то еще. 26.09.2017
  • @RameshMaharjan я вставил неправильный код, он должен быть file:///home/zooms/output/sample1/sample1.txt 26.09.2017
  • все в порядке, но если вы все еще смотрите на свое сообщение об ошибке, к окончательному пути сохранения _temporary/0/_temporary/attempt_201709251339_0005_m_000000_10 добавляется дополнительный путь. Теперь вопрос в том, как добавляется этот строковый путь? подумайте об этом, изучите свой код и проанализируйте. ;) 26.09.2017
  • Этот _temporary/... генерируется spark, на моем ноутбуке он работает, но в spark-submit он не работает, уже пробовал включать масштабирование в группу hadoop, yarn и hdfs, но все равно не работает... 26.09.2017
  • @JozefDúc, что еще я могу установить для разрешения? 26.09.2017

Ответы:


1

Вот ответ на мой вопрос. Поскольку я работаю в режиме кластера или режиме клиента, рабочие не смогут создать каталог на каждом узле, если вы его не определите. Используйте 1_

Ссылки: Запись файлов в локальную систему с помощью Spark в Кластерный режим

Почему задание Spark не записывает вывод?

02.10.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..