[更新中] 跟着官方指引文档入门 Hadoop —— 官方指引节选翻译

作者:一年又一年 分类: 技术 发布于:2019-9-11 0:41 ė249次浏览 60条评论

本文由 Apache Hadoop 官方入门文档(https://hadoop.apache.org/docs/stable/index.html)节选翻译而成。

译:一年又一年

声明:谢绝任何经营性、营利性用途转载或编辑,仅允许开放式转载,但敬请保留译者署名。(行为人包括企业、个人,经营性、营利性用途包括但不限于运营平台公开账号、因流量而间接获利)

英文原文修订时间:2018-11-13;版本: 2.9.2

入门综述

本文档将向您介绍如何入门使用 Hadoop。通过从 建立单节点(Single Node Setup)出发,展示如何以单节点建立 Hadoop 安装;随后进一步介绍 建立群集(Cluster Setup) 以了解如何以多节点建立 Hadoop 安装。

Hadoop: 建立单节点集群.

目标

本章将介绍如何建立和配置单节点 Hadoop 安装,以便能快速地实现运用 Hadoop MapReduce 及 Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)执行简单操作。

运行要求

支持的平台

  • GNU/Linux:可作为 Hadoop 的开发(development)和生产(production)平台。Hadoop 曾基于 GNU/Linux 平台演示过具有两千节点的集群。
  • Windows:虽然 Windows 平台也受 Hadoop 支持,但是接下来的教程只针对 Linux。如果要在 Windows 平台配置 Hadoop,请参阅 wiki page

要求的软件

Linux 下需要满足如下软件要求:

  1. 必须安装 Java™。推荐使用的 Java 版本可参阅 HadoopJavaVersions
  2. 必须安装 ssh,并且 sshd 服务必须运行,以便能使用 Hadoop scripts 来管理远程 Hadoop 服务实例(remote Hadoop daemons)。
安装所需软件

如果集群(平台)没有安装上述要求的软件,应先安装。

以 Ubuntu Linux 为例:

 $ sudo apt-get install ssh
  $ sudo apt-get install rsync 

下载 Hadoop

您可从 Apache Download Mirrors 选取一镜像站,下载获取最新的 Hadoop 稳定发行版。

准备启动 Hadoop 集群(Cluster)

解压下载好的 Hadoop 分发版包。解压后,(在 Hadoop 的主目录下找到并)编辑 etc/hadoop/hadoop-env.sh 文件,按如下指示定义参数。

 # set to the root of your Java installation
  # 设置 Java 所在的主目录(先前 Java 所安装到的目录;主目录即可,无需到 bin 等下级目录)
  export JAVA_HOME=/usr/java/latest 

尝试在 shell 中(在 Hadoop 主目录下)执行如下命令:

 $ bin/hadoop 

如果正常,将显示 hadoop script 的使用说明。

至此已经做好了启动 Hadoop 集群前的准备了,接下来可以分别以三种模式启动 Hadoop 集群:

独立(Standalone)运作

默认配置下,Hadoop 被配置为非分布式模式,以 Java 单进程运行;非常便于调试。

下例将复制(先前)解压(生成)的 conf 目录,并作为 input,检索并输出显示每个匹配给定正则表达式(regular expression)的结果;输出结果将写到给定的输出目录。

 $ mkdir input
  $ cp etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'
  $ cat output/* 

伪分布式(Pseudo-Distributed)运作

Hadoop 还能在一个节点(single-node)上以伪分布式模式(pseudo-distributed mode)运行。在该模式下,Hadoop 的每一个服务实例(daemon)将运行在独立的 Java 进程中。

配置

使用如下配置:

etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration> 

etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration> 

设置 ssh 免密码登录(passphraseless ssh)

(译者注:关于 ssh 配置的这一小节,官方文档写得略仓促,上下文未提及 ssh 证书登录的意义,对于如何配置 ssh 证书登录的介绍亦不具体,建议读者自行拓展了解。)

检查是否可以 ssh 免密登录 localhost:

 $ ssh localhost 

如果无法 ssh 免密登录,执行如下命令:

 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  $ chmod 0600 ~/.ssh/authorized_keys 

执行

如下步骤将在本地(locally)运行 MapReduce 任务(job)。如果想在 YARN 上执行任务,请参阅 YARN on Single Node

  1. 格式化文件系统(filesystem):

     $ bin/hdfs namenode -format 
  2. 启动 NameNode 服务实例(daemon) 和 DataNode 服务实例:

     $ sbin/start-dfs.sh 

    Hadoop 服务实例日志将写到 $HADOOP_LOG_DIR 目录(默认为 $HADOOP_HOME/logs)。

  3. 访问浏览 NameNode 的 Web 管理接口(web interface);默认地址为:

    • NameNode - http://localhost:50070/
  4. 使 HDFS 目录能够执行 MapReduce 任务:

     $ bin/hdfs dfs -mkdir /user
      $ bin/hdfs dfs -mkdir /user/<username> 
  5. 将输入文件复制到分布式文件系统(distributed filesystem):

     $ bin/hdfs dfs -put etc/hadoop input 
  6. 运行一些提供的处理示例(examples):

     $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+' 
  7. 检查输出(output)文件:从分布式文件系统中将输出文件复制到本地文件系统并查看:

     $ bin/hdfs dfs -get output output
      $ cat output/* 

    或者,

    直接在分布式系统中查看输出文件:

     $ bin/hdfs dfs -cat output/* 
  8. 完成后,可停止服务实例(daemon):

     $ sbin/stop-dfs.sh 

单节点(Single Node)下使用 YARN

在伪分布式模式下,MapReduce 任务可以运行在 YARN 上,仅需设置几个参数并额外运行 ResourceManager 服务实例和 NodeManager 服务实例即可实现。

以下步骤在前文步骤 the above instructions 的基础上继续,假定前文 1. ~ 4. 步已经被执行。

  1. 如下配置参数(parameter):etc/hadoop/mapred-site.xml:

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration> 

    etc/hadoop/yarn-site.xml:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration> 
  2. 启动 ResourceManager 服务实例(daemon)和 NodeManager 服务实例:

     $ sbin/start-yarn.sh 
  3. 访问浏览 ResourceManager 的 Web 管理接口(web interface);默认地址为:

    • ResourceManager - http://localhost:8088/
  4. 运行一个 MapReduce 任务(job).

  5. 完成后,可停止服务实例(daemon):

     $ sbin/stop-yarn.sh 

完全分布式(Fully-Distributed)运作

欲了解如何配置完全分布式(fully-distributed)、真正有价值的(non-trivial)集群(cluster),请看 集群建立 Cluster Setup


【待更新】

0 Hadoop 入门 翻译 Linux

♥ 若您欲转载敝站的原创内容,还请您附注出处及相应链接

发表评论

电子邮件地址不会被公开。必填项已用*标注

Ɣ回顶部