相关疑难解决方法(0)

无法在hadoop二进制路径中找到winutils二进制文件

我在为最新的hadoop-2.2版本启动namenode时遇到以下错误.我没有在hadoop bin文件夹中找到winutils exe文件.我试过下面的命令

$ bin/hdfs namenode -format
$ sbin/yarn-daemon.sh start resourcemanager

ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
    at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
    at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:863)
Run Code Online (Sandbox Code Playgroud)

hadoop

104
推荐指数
7
解决办法
17万
查看次数

在Windows上运行Apache Hadoop 2.1.0

我是Hadoop的新手,并且在尝试在我的Windows 7机器上运行它时遇到了问题.特别是我对运行Hadoop 2.1.0感兴趣,因为它的发行说明提到支持在Windows上运行.我知道我可以尝试在Windows上使用Cygwin运行1.x版本,或者甚至使用例如Cloudera准备好的VM,但这些选项在某些方面对我来说不太方便.

检查了来自http://apache-mirror.rbc.ru/pub/apache/hadoop/common/hadoop-2.1.0-beta/的tarball 我发现确实有一些*.cmd脚本可以在没有Cygwin的情况下运行.当我编写HDFS分区时,一切正常,但是当我尝试运行hdfs namenode守护进程时,我遇到了两个错误:首先,非致命,是找不到winutils.exe(它确实没有在下载的tarball中出现).我在Apache Hadoop源代码树中找到了该组件的源代码,并使用Microsoft SDK和MSbuild对其进行了编译.由于详细的错误消息,很明显在哪里放置可执行文件来满足Hadoop.但是致命的第二个错误并没有包含足够的信息供我解决:

13/09/05 10:20:09 FATAL namenode.NameNode: Exception in namenode join
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:423)
    at org.apache.hadoop.fs.FileUtil.canWrite(FileUtil.java:952)
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:451)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:282)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:200)
...
13/09/05 10:20:09 INFO util.ExitUtil: Exiting with status 1
Run Code Online (Sandbox Code Playgroud)

看起来应该编译其他东西.我将尝试使用Maven从源代码构建Hadoop但是不是更简单的方法吗?是不是有一些选项 - 我知道不能禁用本机代码并使该tarball在Windows上可用?

谢谢.

更新.确实是的."Homebrew"包中包含一些额外的文件,最重要的是winutils.exe和hadoop.dll.使用此文件,namenode和datanode成功启动.我认为问题可以结束.如果有人面临同样的困难,我没有删除它.

更新2.为了建立"自制"套餐,我做了以下事情:

  1. 得到消息来源,然后解压缩它们.
  2. 仔细阅读BUILDING.txt.
  3. 已安装的依赖项:
    3a)Windows SDK 7.1
    3b)Maven(我使用3.0.5)3c)JDK(我使用1.7.25)
    3d)ProtocolBuffer(我使用2.5.0 - http://protobuf.googlecode.com/files/ protoc-2.5.0-win32.zip).仅将编译器(protoc.exe)放入某些PATH文件夹就足够了.
    3e)一组UNIX命令行工具(我安装了Cygwin)
  4. 启动Windows SDK的命令行.开始| 所有节目| Microsoft Windows SDK v7.1 | ...命令提示符(我修改了此快捷方式,在命令行中添加选项/发行版以构建本机代码的发行版本).所有后续步骤都是从SDK命令行窗口内部完成的)
  5. 设置环境:

    设置JAVA_HOME = {path_to_JDK_root}

似乎JAVA_HOME 绝不能包含空间!

set …
Run Code Online (Sandbox Code Playgroud)

windows hadoop

34
推荐指数
6
解决办法
6万
查看次数

标签 统计

hadoop ×2

windows ×1