Hadoop 伪集群

翻译: http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
版本: 2.9.0

  • 目标
  • 先决条件
    • 支持的平台
    • 所需软件
    • 安装软件
  • 下载
  • 准备启动Hadoop集群
  • 独立模式
  • 伪分布式
    • 配置
    • 设置passphraseless ssh
    • 执行
    • 单个节点YARN
  • 全分布式

目的

本文档介绍如何搭建单节点Hadoop,以便您可以使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)快速执行简单的操作。

先决条件

支持的平台

  • 支持GNU / Linux作为开发和生产平台。Hadoop已经在具有2000个节点的GNU / Linux集群上进行了演示。

  • Windows也是一个支持的平台,但以下步骤仅适用于Linux。要在Windows上设置Hadoop,请参阅Wiki页面。

所需软件

所需的Linux软件包括:

  1. Java™必须安装。推荐的Java版本在HadoopJavaVersions中描述。

  2. 必须安装ssh,并且必须运行sshd,才能使用Hadoop脚本管理远程Hadoop守护程序。

安装软件

如果你的集群没有必要的软件,你需要安装它。

例如在Ubuntu Linux上:

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

下载

要获得Hadoop发行版,请从其中一个Apache下载镜像下载最新的稳定版本。

准备启动Hadoop集群

解压下载的Hadoop发行版。在发行版中,编辑文件 etc/hadoop/hadoop-env.sh 来定义一些参数,如下所示:

  # set to the root of your Java installation
  export JAVA_HOME=/usr/java/latest

尝试以下命令:

 $ bin/hadoop

这将显示hadoop脚本的使用文档。

现在可以以三种支持模式之一启动Hadoop集群:

  • 本地(独立)模式
  • 伪分布式模式
  • 完全分布式模式

独立模式下的操作

默认情况下,Hadoop被配置为以非分布模式运行,作为单个Java进程。这对调试很有用。

以下示例将解压后的conf目录复制为输入,然后查找并显示给定正则表达式的每个匹配项。输出写入给定的输出目录。

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

伪分布式操作

Hadoop也可以在单节点上以伪分布模式运行,其中每个Hadoop守护进程都在单独的Java进程中运行。

配置

在etc/hadoop/core-site.xml 中配置以下内容:


    
        fs.defaultFS
        hdfs://localhost:9000
    

在etc/hadoop/hdfs-site.xml中配置 :


    
        dfs.replication
        1
    

设置passphraseless ssh

现在检查是否可以在没有密码的情况下ssh到本地主机:

  $ 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

执行

以下说明是在本地运行MapReduce作业。如果要在YARN上执行作业,请参阅单节点上的YARN 。

  1. 格式化文件系统:
  $ bin/hdfs namenode -format
  1. 启动NameNode守护进程和DataNode守护进程:
  $ sbin/start-dfs.sh

hadoop守护进程日志输出被写入 $HADOOP_LOG_DIR 目录(默认为 $HADOOP_HOME/logs)。

  1. 浏览NameNode的Web界面; 默认情况下它可用于:

    • NameNode - http://localhost:50070/
  2. 制作执行MapReduce作业所需的HDFS目录:

  $ bin/hdfs dfs -mkdir /user
  $ bin/hdfs dfs -mkdir /user/
  1. 将输入文件复制到分布式文件系统中:
  $ bin/hdfs dfs -put etc/hadoop input
  1. 运行一些提供的例子:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'
  1. 检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们:
  $ bin/hdfs dfs -get output output
  $ cat output/*

或者 查看分布式文件系统上的输出文件:

  $ bin/hdfs dfs -cat output/*
  1. 当你完成后,停止守护进程:
  $ sbin/stop-dfs.sh

YARN在单个节点上

在伪分布模式下,可以在YARN上运行MapReduce作业 ,只需要配置几个参数并运行ResourceManager守护进程和NodeManager守护进程。

在已经执行了上述指令的情况下,执行如下 1〜4个步骤。

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

    
        mapreduce.framework.name
        yarn
    

etc/hadoop/yarn-site.xml:


    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

  1. 启动ResourceManager守护进程和NodeManager守护进程:
  $ sbin/start-yarn.sh
  1. 浏览ResourceManager的Web界面; 默认情况下它可用于:

    • ResourceManager - http://localhost:8088/
  2. 运行MapReduce作业。

  3. 当你完成后,停止守护进程:

  $ sbin/stop-yarn.sh

全分布式操作

有关设置完全分布式集群的信息,请参阅集群设置。

你可能感兴趣的:(Hadoop 伪集群)