windows上的hadoopYarn无法从java.lang.UnsatifiedLinkError开始

omqzjyyz  于 2021-05-30  发布在  Hadoop
关注(0)|答案(6)|浏览(365)

我已经在WindowsHadoop-2.7.0上安装/配置了hadoop
我可以成功地启动“sbin\start dfs”运行命令。datanode和namenode已启动。我可以创建目录,将文件添加到hadoop系统中。
但现在,当我在“resourcemanager”窗口中尝试“sbin/start”时,我没有看到错误。但它在Yarn的“名字节点”上失败了
它失败并出现以下错误:-

15/06/21 17:26:49 INFO impl.MetricsConfig: loaded properties from hadoop-metrics
2.properties
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: NodeManager metrics system started
15/06/21 17:26:49 FATAL nodemanager.NodeManager: Error starting NodeManager
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V
        at org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Native Method)
        at org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode(NativeIO.java:524)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkOneDirWithMode(RawLocalFileSystem.java:473)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirsWithOptionalPermission(RawLocalFileSystem.java:526)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:504)
        at org.apache.hadoop.fs.FileSystem.primitiveMkdir(FileSystem.java:1064)
        at org.apache.hadoop.fs.DelegateToFileSystem.mkdir(DelegateToFileSystem.java:161)
        at org.apache.hadoop.fs.FilterFs.mkdir(FilterFs.java:197)
        at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:730)
        at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:726)
        at org.apache.hadoop.fs.FSLinkResolver.resolve(FSLinkResolver.java:90)
        at org.apache.hadoop.fs.FileContext.mkdir(FileContext.java:726)
        at org.apache.hadoop.yarn.server.nodemanager.DirectoryCollection.createDir(DirectoryCollection.java:365)
        at org.apache.hadoop.yarn.server.nodemanager.DirectoryCollection.createNonExistentDirs(DirectoryCollection.java:199)
        at org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService.serviceInit(LocalDirsHandlerService.java:152)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:107)
        at org.apache.hadoop.yarn.server.nodemanager.NodeHealthCheckerService.serviceInit(NodeHealthCheckerService.java:48)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:107)
        at org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceInit(NodeManager.java:254)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:463)
        at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:511)
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: Stopping NodeManager metrics system...
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: NodeManager metrics system stopped.
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: NodeManager metrics system shutdown complete.
15/06/21 17:26:49 INFO nodemanager.NodeManager: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NodeManager at idea-PC/27.4.177.205

************************************************************/

我在“sbin\start dfs”时遇到过类似的问题。我试过不同的方法。当我在path中添加hadoop的“bin”和“sbin”时,它看起来已经解决了。
你能提出解决Yarn问题的办法吗。

7d7tgy0s

7d7tgy0s1#

应该有一个 %HADOOP_HOME%\bin\hadoop.dll 其中包含本机方法。 %HADOOP_HOME%\bin 应该在路上。如果是从源代码生成的,请确保hadoop.dll已生成并放置。

xbp102n0

xbp102n02#

如果您查看此处缺少的本机方法的历史,您将看到它是最近添加的。
所以这个错误意味着您使用的是更新版本的hadoop,但是您的hadoop.dll来自旧版本的hadoop。
因此,检索/构建更新的hadoop.dll或降级hadoop都可以避免这个问题。
对我来说,降级到hadoop2.3.0就成功了。

knpiaxh1

knpiaxh13#

在我的例子中,有一个hadoop路径被添加到path变量中,它发出错误“derby的另一个示例已经启动了”

jutyujz0

jutyujz04#

在我的情况下,我有3.1.1hadoop版本,我改变了bin文件夹与另一个从下面的地址https://github.com/s911415/apache-hadoop-3.1.0-winutils. 我设法用这个dll和一个节点(一个节点的Yarn集群)来开始Yarn。你可以找到我在这里遵循的设置。此外,还必须按如下方式设置hdfs-site.xml:

<configuration>

<property> 
    <name>dfs.replication</name>
    <value>1</value>
</property> 

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/hadoop-3.1.1/data/namenode</value>
</property>

<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/hadoop-3.1.1/data/datanode</value>
</property>

</configuration>
atmip9wb

atmip9wb5#

设置vm参数 -Djava.library.path=C:\winutils-master\hadoop-3.0.0 解决了问题。

eyh26e7m

eyh26e7m6#

在我的例子中,这是一个例外,因为hadoop没有找到预编译的hadoop dll。我已经将hadoop.dll文件夹的路径放入path环境变量中,它就成功了。
您得到的异常描述是误导性的,原始异常是在java.lang.classloader类中抛出的:throw new unsatifiedLinkError(“no”+name+“in java.library.path”);

相关问题