Hadoop 版本 2.2 以上包括对Windows的本机支持。 官方 Apache Hadoop 版本不包括 Windows 二进制文件(截至2014年1月)。 但是,从源代码构建 Windows 包相当简单。
Hadoop 是一个包含许多组件的复杂系统。 在尝试构建或安装之前或第一次尝试之前,高级别的熟悉程度是有帮助的。 如果您需要排除故障,则需要熟悉 Java。
Hadoop 开发人员在开发和测试过程中使用了 Windows Server 2008 和 Windows Server 2008 R2 。 由于 Win32 API 与相应服务器 SKU 的相似性,Windows Vista 和Windows 7 也可能工作。 我们还没有在 Windows XP 或 Windows 的任何早期版本上进行测试,这些都不可行。 在 Windows XP 或更早版本中报告的任何问题将被视为无效。
不要尝试从 Cygwin 中运行安装。 Cygwin 既不需要也不受支持。
Oracle JDK 版本 1.7 和 1.6 已经由 Hadoop 开发人员进行了测试,并且已知可以使用。
确保在您的环境中设置了 JAVA_HOME 并且不包含任何空格。 如果您的默认 Java 安装目录包含空格,则必须使用 Windows 8.3 路径名,例如 c:\ Progra〜1 \ Java \ ...
而不是 c:\ Program Files \ Java \ ....
截至2014年8月的当前稳定版本为2.5。 可以从ASF下载服务器或使用 subversion 或 git 检索源代码分发。
资源目录的根目录中的 BUILDING.txt 文件具有关于需求列表的详细信息以及如何安装它们。 它还包含有关设置环境的信息以及特定于 Windows 的一些特殊设置。 强烈建议您在继续之前阅读并理解它。
Linux 上的 Hadoop 包含可选的 Native IO 支持。 然而,Native IO 在 Windows 上是必需的,没有它,您将无法使您的安装正常工作。 您必须遵循 BUILDING.txt 中的所有说明,以确保正确构建 Native IO 支持。
要构建二进制发布包,请从源代码目录的根目录运行以下命令。
mvn package -Pdist,native-win -DskipTests -Dtar
请注意,此命令必须从 BUILDING.txt 中记录的 Windows SDK 命令提示符处运行。 一个成功的构建会在 hadoop-dist \ target \
中生成一个二进制 hadoop .tar.gz 包。
Hadoop 版本存在于程序包文件名中。 如果您的目标是不同的版本,那么包名称将会不同。
选择安装软件包的目标目录。 我们使用 c:\ deploy
作为例子。 提取 c:\ deploy
下的 tar.gz 文件(例如:hadoop-2.5.0.tar.gz)。 这将产生如下所示的目录结构。 如果安装多节点集群,则在每个节点上重复此步骤。
C:\deploy>dir
Volume in drive C has no label.
Volume Serial Number is 9D1F-7BAC
Directory of C:\deploy
01/18/2014 08:11 AM <DIR> .
01/18/2014 08:11 AM <DIR> ..
01/18/2014 08:28 AM <DIR> bin
01/18/2014 08:28 AM <DIR> etc
01/18/2014 08:28 AM <DIR> include
01/18/2014 08:28 AM <DIR> libexec
01/18/2014 08:28 AM <DIR> sbin
01/18/2014 08:28 AM <DIR> share
0 File(s) 0 bytes
本节介绍启动单节点(伪分布式)群集所需的最低配置,并且还运行 MapReduce 示例任务。
3.1 HDFS 配置示例
在启动 Hadoop 守护程序之前,您需要对配置文件进行一些编辑。 假设您的安装目录是 c:\ deploy
,配置文件模板将全部位于 c:\ deploy \ etc \ hadoop
中。
首先,编辑文件 hadoop-env.cmd,在文件末尾添加以下行。
set HADOOP_PREFIX=c:\deploy
set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop
set YARN_CONF_DIR=%HADOOP_CONF_DIR%
set PATH=%PATH%;%HADOOP_PREFIX%\bin
其次,编辑或创建文件 core-site.xml 并确保它具有以下配置键:
<configuration>
<property>
<name>fs.default.namename>
<value>hdfs://0.0.0.0:19000value>
property>
configuration>
然后,编辑或创建文件 hdfs-site.xml 并添加以下配置键:
<configuration>
<property>
<name>dfs.replicationname>
<value>1value>
property>
configuration>
最后,编辑或创建文件的 slaves 并确保它具有以下条目:
localhost
默认配置将 HDFS 元数据和数据文件放在当前驱动器的 \ tmp
下。 在上面的例子中,这将是 c:\ tmp
。 对于您的第一个测试设置,您可以将其保留为默认设置。
3.2 示例 YARN 配置
首先,在 %HADOOP_PREFIX%\ etc \ hadoop 路径下编辑或创建 mapred-site.xml 并添加以下条目,用您的 Windows 用户名替换 %USERNAME% 。
<configuration>
<property>
<name>mapreduce.job.user.namename>
<value>%USERNAME%value>
property>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>yarn.apps.stagingDirname>
<value>/user/%USERNAME%/stagingvalue>
property>
<property>
<name>mapreduce.jobtracker.addressname>
<value>localvalue>
property>
configuration>
最后,编辑或创建 yarn-site.xml 并添加以下条目:
<configuration>
<property>
<name>yarn.server.resourcemanager.addressname>
<value>0.0.0.0:8020value>
property>
<property>
<name>yarn.server.resourcemanager.application.expiry.intervalname>
<value>60000value>
property>
<property>
<name>yarn.server.nodemanager.addressname>
<value>0.0.0.0:45454value>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
<value>org.apache.hadoop.mapred.ShuffleHandlervalue>
property>
<property>
<name>yarn.server.nodemanager.remote-app-log-dirname>
<value>/app-logsvalue>
property>
<property>
<name>yarn.nodemanager.log-dirsname>
<value>/dep/logs/userlogsvalue>
property>
<property>
<name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddressname>
<value>0.0.0.0value>
property>
<property>
<name>yarn.server.mapreduce-appmanager.client-service.bindAddressname>
<value>0.0.0.0value>
property>
<property>
<name>yarn.log-aggregation-enablename>
<value>truevalue>
property>
<property>
<name>yarn.log-aggregation.retain-secondsname>
<value>-1value>
property>
<property>
<name>yarn.application.classpathname>
<value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*value>
property>
configuration>
3.3 初始化环境变量
运行 c:\ deploy \ etc \ hadoop \ hadoop-env.cmd
来设置将由启动脚本和守护程序使用的环境变量。
3.4 格式化文件系统
使用以下命令格式化文件系统:
%HADOOP_PREFIX%\bin\hdfs namenode -format
该命令将打印一些文件系统参数。 只需查找以下两个字符串即可确保 format 命令成功。
14/01/18 08:36:23 INFO namenode.FSImage: Saving image file \tmp\hadoop-username\dfs\name\current\fsimage.ckpt_0000000000000000000 using no compression
14/01/18 08:36:23 INFO namenode.FSImage: Image file \tmp\hadoop-username\dfs\name\current\fsimage.ckpt_0000000000000000000 of size 200 bytes saved in 0 seconds.
3.5 启动 HDFS 守护程序
运行以下命令以启动本地主机上的 NameNode 和 DataNode 。
%HADOOP_PREFIX%\sbin\start-dfs.cmd
要验证 HDFS 守护进程正在运行,请尝试将文件复制到 HDFS。
C:\deploy>%HADOOP_PREFIX%\bin\hdfs dfs -put myfile.txt /
C:\deploy>%HADOOP_PREFIX%\bin\hdfs dfs -ls /
Found 1 items
drwxr-xr-x - username supergroup 4640 2014-01-18 08:40 /myfile.txt
C:\deploy>
3.6 启动 YARN 守护进程并运行 YARN 作业
最后,启动YARN守护进程。
%HADOOP_PREFIX%\sbin\start-yarn.cmd
集群应该启动并运行! 为了验证,我们可以在刚刚复制到 HDFS 的文本文件上运行一个简单的 wordcount 作业。
%HADOOP_PREFIX%\bin\yarn jar %HADOOP_PREFIX%\share\hadoop\mapreduce\hadoop-mapreduce-example
s-2.5.0.jar wordcount /myfile.txt /out
TODO:记录这一点
5.1 注意事项
以下功能尚未针对Windows实施。
5.2 有问题吗?
如果您有任何问题,您可以从 Hadoop邮件列表 请求帮助。 有关在 Windows 上构建 Hadoop 的帮助,请将邮件发送到 [email protected]。 对于所有其他问题,请发送电子邮件至 [email protected] 。 链接网页上包含订阅/取消订阅信息。 请注意,邮寄名单由志愿者监测。
原文链接