在 Windows 上构建和安装 Hadoop 2.x 或更新版本

1. 介绍

Hadoop 版本 2.2 以上包括对Windows的本机支持。 官方 Apache Hadoop 版本不包括 Windows 二进制文件(截至2014年1月)。 但是,从源代码构建 Windows 包相当简单。

Hadoop 是一个包含许多组件的复杂系统。 在尝试构建或安装之前或第一次尝试之前,高级别的熟悉程度是有帮助的。 如果您需要排除故障,则需要熟悉 Java。

2. 构建适用于 Windows 的 Hadoop Core

2.1 选择目标 OS 版本

Hadoop 开发人员在开发和测试过程中使用了 Windows Server 2008 和 Windows Server 2008 R2 。 由于 Win32 API 与相应服务器 SKU 的相似性,Windows Vista 和Windows 7 也可能工作。 我们还没有在 Windows XP 或 Windows 的任何早期版本上进行测试,这些都不可行。 在 Windows XP 或更早版本中报告的任何问题将被视为无效。

不要尝试从 Cygwin 中运行安装。 Cygwin 既不需要也不受支持。

2.2 选择 Java 版本并设置 JAVA_HOME

Oracle JDK 版本 1.7 和 1.6 已经由 Hadoop 开发人员进行了测试,并且已知可以使用。

确保在您的环境中设置了 JAVA_HOME 并且不包含任何空格。 如果您的默认 Java 安装目录包含空格,则必须使用 Windows 8.3 路径名,例如 c:\ Progra〜1 \ Java \ ...而不是 c:\ Program Files \ Java \ ....

2.3 获取 Hadoop 资源

截至2014年8月的当前稳定版本为2.5。 可以从ASF下载服务器或使用 subversion 或 git 检索源代码分发。

  • 从 ASF Hadoop下载页面 或镜像。
  • Subversion 网址:https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2.5
  • Git仓库URL:git://git.apache.org/hadoop-common.git。 在通过git下载源代码后,使用 git checkout branch-2.5 切换到 stable 2.5,或者如果您的目标是更新版本,请使用相应的分支名称。

2.4 安装依赖和建立环境

资源目录的根目录中的 BUILDING.txt 文件具有关于需求列表的详细信息以及如何安装它们。 它还包含有关设置环境的信息以及特定于 Windows 的一些特殊设置。 强烈建议您在继续之前阅读并理解它。

2.5 关于 Native IO 支持的几句话

Linux 上的 Hadoop 包含可选的 Native IO 支持。 然而,Native IO 在 Windows 上是必需的,没有它,您将无法使您的安装正常工作。 您必须遵循 BUILDING.txt 中的所有说明,以确保正确构建 Native IO 支持。

2.6 构建和复制包文件

要构建二进制发布包,请从源代码目录的根目录运行以下命令。

mvn package -Pdist,native-win -DskipTests -Dtar

请注意,此命令必须从 BUILDING.txt 中记录的 Windows SDK 命令提示符处运行。 一个成功的构建会在 hadoop-dist \ target \ 中生成一个二进制 hadoop .tar.gz 包。

Hadoop 版本存在于程序包文件名中。 如果您的目标是不同的版本,那么包名称将会不同。

2.7 安装

选择安装软件包的目标目录。 我们使用 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

3. 启动单个节点(伪分布式)群集

本节介绍启动单节点(伪分布式)群集所需的最低配置,并且还运行 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

4. 多节点集群

TODO:记录这一点

5. 结论

5.1 注意事项

以下功能尚未针对Windows实施。

  • Hadoop安全
  • 短路读数

5.2 有问题吗?

如果您有任何问题,您可以从 Hadoop邮件列表 请求帮助。 有关在 Windows 上构建 Hadoop 的帮助,请将邮件发送到 [email protected]。 对于所有其他问题,请发送电子邮件至 [email protected] 。 链接网页上包含订阅/取消订阅信息。 请注意,邮寄名单由志愿者监测。

原文链接

你可能感兴趣的:(Hadoop)