我是Hadoop新手,在Windows 7机器上运行Hadoop时遇到了问题。我对运行Hadoop 2.1.0特别感兴趣,因为它的发行说明提到支持在Windows上运行。我知道我可以试着跑1。使用Cygwin的Windows上的x版本,甚至使用准备好的VM,例如Cloudera,但由于某些原因,这些选项对我来说不太方便。
检查了来自http://apache-mirror.rbc.ru/pub/apache/hadoop/common/hadoop-2.1.0-beta/我发现确实有一些*。可以在没有Cygwin的情况下运行的cmd脚本。当我格式化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
看起来应该编译其他内容。我将尝试使用Maven从源代码构建Hadoop,但有没有更简单的方法?难道没有什么选项可以禁用本机代码并使tarball在Windows上可用吗?
谢谢你。
已更新。是的,的确如此。“Homebrew”包包含一些额外的文件,最重要的是winutils。exe和hadoop。dll。使用此文件,namenode和datanode成功启动。我想这个问题可以结束了。我没有删除它,以防有人面临同样的困难。
已更新2。为了构建“自制”软件包,我做了以下工作:
>
设置环境:
设置JAVA\u HOME={path\u to\u JDK\u root}
看来JAVA\u HOME不能包含空格!
set PATH={path_to_maven_bin};%PATH%
set Platform=x64
set PATH={path_to_cygwin_bin};%PATH%
set PATH={path_to_protoc.exe};%PATH%
>
MVN包-Pdist-DskipTest
您可以尝试不使用“skipTest”,但在我的机器上,一些测试失败并终止了构建。它可能与BUILDING. txt中提到的符号链接问题有关。8.在hadoop-dist\Target\hadoop-2.1.0-beta中选择结果(windows可执行文件和dlls在“bin”文件夹中)
我也有同样的问题,但最近的hadoop版本是2.2.0。以下是我解决该问题的步骤:
>
我从源代码构建了winutils.exe
。项目目录:
hadoop-2.2.0-src\hadoop common project\hadoop common\src\main\winutils
我的操作系统:Windows 7。构建工具:MS Visual Studio Express 2013 for Windows Desktop(它是免费的,可以从http://www.microsoft.com/visualstudio/加载)。打开工作室,文件-
接下来,我们需要构建hadoop。dll
。一些woodoo魔法:打开
hadoop-2.2.0-src\hadoop common project\hadoop common\src\main\native\native。sln
在MS VS中;右键单击解决方案-
https://github.com/jerishsd/hadoop-experiments/tree/master/sources
(不要问我git上的这个项目是干什么的!我不知道-google通过搜索头文件名指出了这一点)我复制了
hadoop-2.2.0-src\hadoop-Common-project\hadoop-Common\Target\winutils\Debug\libwinutils.lib
(步骤#1的结果)进入
hadoop-2.2.0-src\hadoop common project\hadoop common\target\bin
最后,构建操作产生了hadoop.dll!将其再次放入hadoop的bin并愉快地运行namenode!
希望我的脚步能帮助别人。
Han准备了Hadoop 2.2 Windows x64二进制文件(见他的博客)并将它们上传到Github。
在将两个二进制文件winutils.exe
和hadoop.dll
放入%hadoop_prefix%\bin
文件夹后,我得到了相同的未满足LinkError
。
问题是hadoop的一些依赖性。缺少dll。我使用Dependency Walker检查二进制文件的依赖关系,并且Microsoft Visual C 2010可再发行文件丢失。
因此,除了自己构建所有组件之外,问题的答案是
java-version
告诉您是使用32还是x64。我按照以下步骤安装了Hadoop 2.2.0
为Windows构建Hadoop bin分发的步骤
>
下载并安装Microsoft Windows SDK v7.1。
下载并安装Unix命令行工具Cygwin。
下载并安装Maven 3.1.1。
下载Protocol Buffers 2.5.0并解压缩到一个文件夹中(例如c:\原型buf)。
如果尚未添加,则添加环境变量JAVA_HOME、M2_HOME和Platform。注意:变量名称Platform区分大小写。并且值将是x64或Win32,用于在64位或32位系统上构建。编辑路径变量以添加Cygwin的bin目录(例如C:\cygwin64\bin)、Maven的bin目录(例如C:\maven\bin)和协议缓冲区的安装路径(例如c:\probuf)。
下载hadoop-2.2.0-src。焦油gz和解压缩到具有短路径(例如c:\hdfs)的文件夹,以避免Windows中由于最大路径长度限制而导致的运行时问题。
选择开始--
如果上一步一切顺利,那么本机发行版hadoop-2.2.0。焦油gz将在C:\hdfs\hadoop dist\target\hadoop-2.2.0目录中创建。
安装Hadoop
>
提取hadoop-2.2.0.tar.gz到一个文件夹(说c:\hadoop)。
添加环境变量HADOOP_HOME并编辑路径变量以添加HADOOP_HOME的bin目录(如C:\hadoop\bin)。
配置Hadoop
C: \hadoop\etc\hadoop\core站点。xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
C: \hadoop\etc\hadoop\hdfs站点。xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/data/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hadoop/data/dfs/datanode</value>
</property>
</configuration>
C: \hadoop\etc\hadoop\mapred站点。xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
C:\hadoop\etc\hadoop\yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
设置名称节点格式
这只是第一次,namenode需要格式化。
C:\Users\abhijitg>cd c:\hadoop\bin
c:\hadoop\bin>hdfs namenode –format
启动HDFS(Namenode和Datanode)
C:\Users\abhijitg>cd c:\hadoop\sbin
c:\hadoop\sbin>start-dfs
启动MapReduce aka YARN(资源管理器和节点管理器)
C:\Users\abhijitg>cd c:\hadoop\sbin
c:\hadoop\sbin>start-yarn
starting yarn daemons
将自动打开总共四个单独的命令提示符窗口,以运行Namenode、Datanode、Resource Manager、Node Manager
参考:在Microsoft Windows操作系统中构建、安装、配置和运行Apache Hadoop 2.2.0
问题内容: 运行Airflow的常规说明不适用于Windows环境: Airflow实用程序在命令行中不可用,我在其他地方找不到要手动添加的实用程序。Airflow如何在Windows上运行? 问题答案: 您可以在Windows中激活,并直接按照本教程进行操作。我能够按照上面的步骤启动并成功运行。 安装完成后,请进行编辑以将所有配置指向Windows系统中的某个位置,而不是lxss(ubuntu)
问题内容: 我环顾了一阵子,我很惊讶地发现Gunicorn是否在Windows上运行,没有任何信息。有谁知道是这种情况,如果是,我在哪里可以找到有关它的文档? 问题答案: Gunicorn用于UNIX环境,并且与Windows不兼容。另外,有关更多信息,请参阅它的文档。
我已经在Windows 7 ulimate上成功安装了XAMPP。但在从XAMPP控制面板运行Apache时发现以下错误: 检测到问题!端口3306由“C:\Program Files\MySQL Server 5.1\bin\mysqld”使用-默认文件…如果没有配置的端口,MySQL将无法启动。您需要卸载/禁用/重新配置阻塞应用程序,或重新配置我的SQL和控制面板以在其他端口上侦听 请帮助解决
虽然我只是在尝试安装JabRef,但我很惊讶这个看似简单的任务却给我带来了这么多麻烦。 如何定义OpenJFX在哪里?或 在哪里可以获得包含JavaFX for Java8的JDK或JRE? 最好的问候!
问题内容: 如何在Windows中运行celery worker而不创建Windows Service?有什么比喻吗? 问题答案: 它的完成方式与Linux中相同。将目录更改为包含celery任务的模块并调用效果很好。