Подтвердить что ты не робот

Hadoop java.io.IOException: Mkdirs не удалось создать/some/path

Когда я пытаюсь запустить свое задание, я получаю следующее исключение:

Exception in thread "main" java.io.IOException: Mkdirs failed to create /some/path
    at org.apache.hadoop.util.RunJar.ensureDirectory(RunJar.java:106)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:150)

Где/some/путь hasoop.tmp.dir. Однако, когда я выдаю dfs -ls cmd on/some/path, я вижу, что он существует, и файл набора данных присутствует (был скопирован перед обедом задания). Также путь определен правильно в конфигурациях hadoop. Любые предложения будут оценены. Я использую hasoop 0.21.

4b9b3361

Ответ 1

Это файл на локальном диске, который создается (чтобы распаковать вашу работу), а не в HDFS. Проверьте, есть ли у вас права на mkdir этот каталог (попробуйте его из командной строки)

Ответ 2

Просто наткнулся на эту проблему с запуском mahout с CDH4 в автономном режиме на моем MacBook Air.

Проблема заключается в том, что файл a/tmp/hadoop-xxx/xxx/LICENSE и каталог /tmp/hadoop -xxx/xxx/license создаются в файловой системе, не учитывающей регистр, при отмене заданий mahout.

Мне удалось обойти это, удалив META-INF/LICENSE из файла jar следующим образом:

zip -d mahout-examples-0.6-cdh4.0.0-job.jar META-INF/LICENSE

а затем проверил его с помощью

jar tvf mahout-examples-0.6-cdh4.0.0-job.jar | grep -i license

Надеюсь, это поможет!

Ответ 3

Проблема связана с OSX, потому что по умолчанию файловая система установлена ​​на нечувствительный к регистру на Mac (сохраняющий регистр, но не учитывающий регистр, что, на мой взгляд, очень плохое).

Чтобы обойти это, нужно создать образ диска .dmg с дисковой утилитой, чувствительной к регистру, и смонтировать это изображение там, где оно вам нужно (например, hasoop.tmp.dir или /tmp ) с следующую команду (как суперпользователь):

sudo hdiutil attach -mountpoint /tmp <my_image>.dmg

Надеюсь, это поможет.

Ответ 4

Я сталкивался с этими проблемами несколько раз в прошлом, я считаю, что это проблема Mac. Поскольку я использую Maven для создания моего проекта, мне удалось обойти его, добавив строку в мой Maven pom.xml следующим образом:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer">
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

Ответ 5

В моем случае ниже строки кода в pom.xml в проекте Maven работали на Mac.

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.0</version>
    <configuration>
      <shadedArtifactAttached>true</shadedArtifactAttached>
    </configuration>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
          <configuration>
            <filters>
              <filter>
                <artifact>*:*</artifact>
                <excludes>
                  <exclude>META-INF/*.SF</exclude>
                  <exclude>META-INF/*.DSA</exclude>
                  <exclude>META-INF/*.RSA</exclude>
                  <exclude>META-INF/LICENSE*</exclude>
                  <exclude>license/*</exclude>
                </excludes>
              </filter>
            </filters>
        </configuration>
      </execution>
    </executions>
  </plugin>

Ответ 6

Проверьте наличие необходимого пространства или нет. Это проблема в основном из-за проблем с пространством.

Ответ 7

Я столкнулся с этой проблемой при создании заданий MapReduce на Mac с MacOS Sierra. Тот же код работает без проблем на Ubuntu Linux (14.04 LTS и 16.04 LTS). Распределение MapReduce составило 2.7.3 и было настроено для Single Node, автономной работы. Проблема, похоже, связана с копированием файлов лицензий в каталог META_INF. Моя проблема была решена путем добавления трансформатора в конфигурацию плагина Maven Shade, в частности: ApacheLicenseResourceTransformer.

Вот соответствующий раздел POM.xml, который входит в раздел <build>:

<plugin>                                                                                                             <groupId>org.apache.maven.plugins</groupId>                                                                      
   <artifactId>maven-shade-plugin</artifactId>                                                                      
   <version>3.0.0</version>                                                                                         
   <executions>                                                                                                     
     <execution>                                                                                                    
       <phase>package</phase>                                                                                       
       <goals>                                                                                                      
         <goal>shade</goal>                                                                                         
       </goals>                                                                                                     
       <configuration>                                                                                              
         <transformers>                                                                                             
           <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">       
             <mainClass>path.to.your.main.class.goes.here</mainClass>                                        
           </transformer>                                                                                           
           <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer">  
           </transformer>                                                                                           
         </transformers>                                                                                            
       </configuration>                                                                                             
     </execution>                                                                                                   
   </executions>                                                                                                    
 </plugin>  

Обратите внимание, что я также использую ManifestResourceTransformer для указания основного класса для задания MapReduce.

Ответ 8

В моем случае я просто переименовал файл "log_test.txt"

Поскольку ОС (UBUNTU) пыталась создать папку с тем же именем. "Log_test.txt/__ results.json"