Windows上的Hadoop。纱线无法以java.lang.UnsatifiedLinkError启动

Windows上的Hadoop。纱线无法以java.lang.UnsatifiedLinkError启动,hadoop,yarn,Hadoop,Yarn,我已经在windows Hadoop-2.7.0上安装/配置了Hadoop 我可以成功启动“sbin\start dfs”运行命令。DataNode和NameNode已启动。 我可以创建目录,将文件添加到hadoop系统中 但现在,当我在“resourcemanager”窗口上尝试“sbin/start Thread”时,我并没有看到错误。但它在纱线的“名称节点”上失败了 它失败,出现以下错误:- 15/06/21 17:26:49 INFO impl.MetricsConfig: loaded

我已经在windows Hadoop-2.7.0上安装/配置了Hadoop

我可以成功启动“sbin\start dfs”运行命令。DataNode和NameNode已启动。 我可以创建目录,将文件添加到hadoop系统中

但现在,当我在“resourcemanager”窗口上尝试“sbin/start Thread”时,我并没有看到错误。但它在纱线的“名称节点”上失败了

它失败,出现以下错误:-

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”时遇到过类似的问题。我尝试了不同的东西。当我在路径中添加hadoop的“bin”和“sbin”时,它看起来已经解决了


你能提出解决纱线问题的办法吗

应该有一个
%HADOOP\u HOME%\bin\HADOOP.dll
,其中包含<代码>%HADOOP\u HOME%\bin应该在路径中。如果您是从源代码构建的,请确保hadoop.dll是构建和放置的。

如果查看此处缺失的历史记录,您将看到它是最近添加的

因此,此错误意味着您使用的是较新版本的Hadoop,但您的Hadoop.dll来自较旧版本的Hadoop

因此,检索/构建更新的hadoop.dll或降级hadoop都可以避免这个问题


对我来说,降级到Hadoop 2.3.0就成功了。

在我的情况下,这是一个例外,因为Hadoop没有找到预编译的“Hadoop”DLL。我已经将hadoop.dll文件夹的路径放入path环境变量中,它就成功了


您得到的异常描述有误导性,原始异常在java.lang.ClassLoader类中抛出:抛出新的UnsatifiedLinkError(“java.library.path中的no”+name+)

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

在我的例子中,我有3.1.1 hadoop版本,我用下面地址的另一个文件夹更改了bin文件夹。我设法用这个dll和一个节点(一个节点的纱线集群)来启动纱线。 你可以找到我遵循的设置。您还必须设置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>

dfs.replication
1.
dfs.namenode.name.dir
/hadoop-3.1.1/data/namenode
dfs.datanode.data.dir
/hadoop-3.1.1/data/datanode

给我设置VM参数
-Djava.library.path=C:\winutils master\hadoop-3.0.0
解决了这个问题