我已经在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问题的办法吗。
6条答案
按热度按时间7d7tgy0s1#
应该有一个
%HADOOP_HOME%\bin\hadoop.dll
其中包含本机方法。%HADOOP_HOME%\bin
应该在路上。如果是从源代码生成的,请确保hadoop.dll已生成并放置。xbp102n02#
如果您查看此处缺少的本机方法的历史,您将看到它是最近添加的。
所以这个错误意味着您使用的是更新版本的hadoop,但是您的hadoop.dll来自旧版本的hadoop。
因此,检索/构建更新的hadoop.dll或降级hadoop都可以避免这个问题。
对我来说,降级到hadoop2.3.0就成功了。
knpiaxh13#
在我的例子中,有一个hadoop路径被添加到path变量中,它发出错误“derby的另一个示例已经启动了”
jutyujz04#
在我的情况下,我有3.1.1hadoop版本,我改变了bin文件夹与另一个从下面的地址https://github.com/s911415/apache-hadoop-3.1.0-winutils. 我设法用这个dll和一个节点(一个节点的Yarn集群)来开始Yarn。你可以找到我在这里遵循的设置。此外,还必须按如下方式设置hdfs-site.xml:
atmip9wb5#
设置vm参数
-Djava.library.path=C:\winutils-master\hadoop-3.0.0
解决了问题。eyh26e7m6#
在我的例子中,这是一个例外,因为hadoop没有找到预编译的hadoop dll。我已经将hadoop.dll文件夹的路径放入path环境变量中,它就成功了。
您得到的异常描述是误导性的,原始异常是在java.lang.classloader类中抛出的:throw new unsatifiedLinkError(“no”+name+“in java.library.path”);