Windows上的Hadoop。 YARN无法以java.lang.UnsatisfiedLinkError开头

时间:2015-06-21 11:54:04

标签: hadoop yarn

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

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

但是现在当我在“resourcemanager”窗口尝试“sbin / start-yarn”时,我没有看到错误。但它在纱线的“namenode”上失效

它因此错误而失败: -

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”时,看起来它已经解决了。

您能否为纱线问题提出解决方案。

6 个答案:

答案 0 :(得分:1)

应该有%HADOOP_HOME%\bin\hadoop.dll,其中包含native method%HADOOP_HOME%\bin应该在路径中。如果您是从源构建的,请确保已构建并放置hadoop.dll。

答案 1 :(得分:1)

如果您查看此处遗漏的native method的历史记录,您会看到它最近已添加。

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

因此,检索/构建较新的hadoop.dll或降级Hadoop应该可以避免此问题。

对我来说,降级到Hadoop 2.3.0就可以了。

答案 2 :(得分:1)

在我的情况下,我具有3.1.1 Hadoop版本,并从以下地址https://github.com/s911415/apache-hadoop-3.1.0-winutils更改了 bin 文件夹和另一个文件夹。我设法用这个dll和一个节点(一个节点的纱线群集)启动yarn。 您可以找到我遵循的here设置。另外,您还必须设置 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>

答案 3 :(得分:0)

在我的情况下,这是一个例外,因为Hadoop没有找到预编译的'hadoop'DLL。我已经将hadoop.dll文件夹的路径放入PATH环境变量中,结果很好。

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

答案 4 :(得分:0)

在我的情况下,在路径变量中添加了hadoop路径并且它发出了错误&#34; Derby的另一个实例已经启动了&#34;

答案 5 :(得分:0)

对我来说,设置VM参数-Djava.library.path=C:\winutils-master\hadoop-3.0.0解决了该问题。