Hadoop的产生java.io.IOException:Mkdirs无法创建/一些/路径Hadoo

2019-05-13 23:50发布

当我尝试运行我的工作,我得到以下异常:

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)

凡/一些/路径hadoop.tmp.dir。 然而,当我发出DFS -ls /一些/路径上CMD我可以看到它的存在和数据集文件存在(吃午饭作业之前被复制)。 另外,路径在hadoop的CONFIGS正确定义。 任何建议将不胜感激。 我使用Hadoop 0.21。

Answer 1:

这是正在创建(解压你的工作罐子成),而不是在HDFS本地磁盘上的文件。 检查你无权使用此目录(命令行尝试)的mkdir



Answer 2:

恰好碰到了从CDH4这个问题象夫运行在独立模式在我的MacBook Air。

问题是,一个的/ tmp / Hadoop的XXX / XXX /许可文件和/ tmp目录/ Hadoop的XXX / XXX /许可证目录中不区分大小写的文件系统上unjarring象夫作业时被创建。

我能够从这样的jar文件中删除META-INF /许可来解决此:

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

希望这可以帮助!



Answer 3:

问题是OSX具体是由于(不敏感的情况下保留,但情况下,这在我看来是非常糟糕)的事实,默认文件系统设置为不区分大小写的 Mac上。

规避此一劈是创建具有磁盘工具一个.dmg磁盘映像区分大小写和装入此图像,你用下面的命令需要它(即hadoop.tmp.dir或/ TMP)(作为超级用户):

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

我希望它能帮助。



Answer 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>


Answer 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>


Answer 6:

检查所需的空间是否可用。 这是主要的问题,因为获得的空间问题。



Answer 7:

我遇到了同样的问题,而和MacOS塞拉利昂在Mac上建立MapReduce作业。 相同的代码不运行Ubuntu Linux上的问题(14.04 LTS和16.04 LTS)。 MapReduce的分布2.7.3,并配置了单节点,独立操作。 这个问题似乎涉及到复制许可证文件到META_INF目录。 :我的问题是通过增加一个变压器到Maven的阴影插件配置,特别是解决了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的工作。



Answer 8:

在我来说,我只是重命名的文件“log_test.txt”

由于操作系统(UBUNTU)试图生成具有相同名称的文件夹。 “log_test.txt / __ results.json”



文章来源: Hadoop java.io.IOException: Mkdirs failed to create /some/path