【问题标题】:Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z线程“主”java.lang.UnsatisfiedLinkError 中的异常:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
【发布时间】:2017-06-10 14:27:24
【问题描述】:

尝试在 Eclipse 中在 windows 7 64 位中运行 MR 程序版本(2.7),同时运行上述异常。 我验证了使用 64 位 1.8 java 版本并观察到所有 hadoop 守护进程都在运行。

任何建议都非常感谢

【问题讨论】:

  • 看来java找不到任何原生库。可能是任何 dll 文件已损坏或无法被 java 程序访问。
  • 也有类似的问题,可以看这里stackoverflow.com/questions/18630019/…
  • 在这种情况下,在启动守护进程时会发生此问题。但在我的情况下,启动时没有问题,但在执行 map reduce 程序时会发生异常
  • 似乎无法访问 map reduce 程序所需的任何本机库。请分享堆栈跟踪以获取更多信息。

标签: java hadoop


【解决方案1】:

除其他解决方案外,请下载winutil.exehadoop.dll并添加到$HADOOP_HOME/bin。它对我有用。

https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin

注意:我使用的是 hadoop-2.7.3 版本

【讨论】:

  • 我在启动Namenode时遇到了同样的问题。我无法启动 Namenode。请帮忙
  • 我正在使用 Hadoop-3.0.0。我从您提供的 Github 链接下载了 hadoop.dll 和 winutils.exe。但仍然没有运气。启动 Namenode 时会抛出相同的错误
  • 上面的链接没有3.1.1。 (然而?)。发现这个似乎适用于最新版本:github.com/kontext-tech/winutils
  • @JonAndrews - 你最后能解决吗?有同样的问题,同样的 hadoop 版本...谢谢!
【解决方案2】:

haddop.dllwinutils放入hadoop/bin文件夹并将hadoop的文件夹添加到PATH后,我们还需要将hadoop.dll放入C:\Windows\System32文件夹

【讨论】:

  • 已完成此操作,但仍然弹出错误。有什么建议吗?
  • 我不需要C:\Windows\System32 步骤。 Hadoop bin 文件夹中的WinUntils.exehadoop.dll 为我做了这件事。不过环境变量和路径设置很关键。
  • @Dan Dunno 为什么,但是将 hadoop.dll 放入 C:\Windows\System32 文件夹对我来说也很重要。
  • @diman82 您是否设置了环境变量HADOOP_HOME 和路径并重新启动? (不重要,事情正在为你运行;我只是好奇是什么导致了这种差异)。
【解决方案3】:

这个问题发生在我身上,原因是我忘记在我的环境变量中将%HADOOP_HOME%/bin 附加到PATH

【讨论】:

  • 值得注意的是,必须先创建HADOOP_HOME用户或系统变量,然后才能将上述内容添加到PATH。通常,HADOOP_HOME 将指向安装 hadoop 的位置,例如C:\hadoop-2.8.1。与更改 PATH 变量一样,通常需要重新启动。
【解决方案4】:

对我来说,这个问题是通过从https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin 下载 winutils.exe 和 hadoop.dll 并将它们放入 hadoop/bin 文件夹来解决的

【讨论】:

    【解决方案5】:

    在尝试了以上所有之后,将 hadoop.dll 放入 windows/System32 后一切正常

    【讨论】:

      【解决方案6】:

      在我的情况下,我在将依赖项升级到 CDH6 后在本地机器上运行单元测试时遇到了这个问题。我已经正确配置了HADOOP_HOMEPATH 变量,但我必须按照另一个答案中的建议将hadoop.ddl 复制到C:\Windows\System32

      【讨论】:

        【解决方案7】:

        我的PATH 中已经有%HADOOP_HOME%/bin,并且我的代码之前运行时没有出现错误。重新启动我的机器使它再次工作。

        【讨论】:

          【解决方案8】:

          版本错误是导致此问题的主要原因。使用 java 库遵循完整的 hadoop 版本将解决问题,如果您仍然遇到问题并使用 hadoop 3.1.x 版本,请使用此库下载 bin

          https://github.com/s911415/apache-hadoop-3.1.0-winutils/tree/master/bin

          【讨论】:

            【解决方案9】:

            添加hadoop.dll和WinUntils.exe修复了错误,最新版本的支持可以找到here

            【讨论】:

            • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
            • 这个对我有用。
            【解决方案10】:

            在 Intellij 中的 Run/Debug Configurations 下,打开您尝试运行的应用程序,在配置选项卡下,指定确切的工作目录。使用表示工作目录的变量也会产生此问题。当我在配置下更改工作目录时,它又开始工作了。

            【讨论】:

              【解决方案11】:

              是的,当我使用 PIGUNITS 自动化 PIGSCRIPTS 时,出现了这个问题。需要依次做两件事:

              1. 将上述两个文件复制到一个位置,并将其添加到 PATH 下的环境变量中。

              2. 要反映您刚刚所做的更改,您必须重新启动计算机以加载文件。

              在 JUNIT 下,我遇到了这个错误,这也可以帮助其他人:

              org.apache.pig.impl.logicalLayer.FrontendException:错误 1066:无法打开别名 XXXXX 的迭代器。后端错误:java.lang.IllegalStateException:作业状态为 DEFINE 而不是 RUNNING 在 org.apache.pig.PigServer.openIterator(PigServer.java:925)

              【讨论】:

                【解决方案12】:

                这可能是旧的,但如果它仍然无法为某人工作,第 1 步 - 双击 winutils.exe。如果显示缺少某些 dll 文件,请下载该 .dll 文件并将其放在适当的位置。

                在我的例子中,缺少 msvcr100.dll,我必须安装 Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package 才能使其工作。 万事如意

                【讨论】:

                  【解决方案13】:

                  我已经正确配置了所有内容,但是在使用 pyspark.SparkContext.wholeTextFiles 时,我将路径指定为“/directory/”而不是“/directory/*”,这给了我这个问题。

                  【讨论】:

                    【解决方案14】:

                    我的 PATH 中已经有 %HADOOP_HOME%/bin。在Hadoop/bin directory 中添加hadoop.dll 使其再次工作。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2022-01-21
                      • 1970-01-01
                      • 2020-12-10
                      • 1970-01-01
                      • 1970-01-01
                      • 2019-01-11
                      • 2015-07-09
                      • 2019-01-31
                      相关资源
                      最近更新 更多