Hadoop:设置单节点群集。

目的

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

先决条件

支持平台

  • 支持GNU / Linux作为开发和生产平台。Hadoop已在具有2000个节点的GNU / Linux集群上进行了演示。
  • Windows也是受支持的平台,但是以下步骤仅适用于Linux。要在Windows上设置Hadoop,请参见wiki页面

必备软件

Linux所需的软件包括:

  1. 必须安装Java™。HadoopJavaVersions中描述了推荐的Java版本。
  2. 如果要使用可选的启动和停止脚本,则必须安装ssh并且必须运行sshd才能使用管理远程Hadoop守护程序的Hadoop脚本。另外,建议也安装pdsh以便更好地进行ssh资源管理。

安装软件

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

例如在Ubuntu Linux上:

  $ sudo apt-get install ssh
  $ sudo apt-get install pdsh

下载

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

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

准备启动Hadoop集群

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

tar -zxvf  hadoop-3.3.0.tar.gz
  #设置为Java安装的根目录
  export JAVA_HOME=/usr/lib/jdk1.8.0_212

尝试以下命令:

  $ bin/hadoop

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

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

独立运行

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

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

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

伪分布式操作

Hadoop也可以以伪分布式模式在单节点上运行,其中每个Hadoop守护程序都在单独的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

现在检查您是否可以在不使用密码的情况下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
  2. 启动NameNode守护程序和DataNode守护程序:

      $ sbin/start-dfs.sh

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

  3. 浏览Web界面以查找NameNode;默认情况下,它在以下位置可用:

  4. 设置执行MapReduce作业所需的HDFS目录:

     $ bin/hdfs dfs -mkdir /user
     $ bin/hdfs dfs -mkdir /user/
  5. 将输入文件复制到分布式文件系统中:

      $ bin/hdfs dfs -mkdir input
      $ bin/hdfs dfs -put etc/hadoop/*.xml input
  6. 运行提供的一些示例:

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

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

    或者

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

      $ bin/hdfs dfs -cat output/*
  8. 完成后,使用以下命令停止守护进程:

      $ sbin/stop-dfs.sh

在单个节点上的YARN

您可以通过设置一些参数并另外运行ResourceManager守护程序和NodeManager守护程序,以伪分布式模式在YARN上运行MapReduce作业。

以下指令假定上述指令的1.〜4.步骤已执行。

  1. 配置参数如下:

    etc/hadoop/mapred-site.xml:

    
        
            mapreduce.framework.name
            yarn
        
        
            mapreduce.application.classpath
            $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*
        
    

    etc/hadoop/yarn-site.xml:

    
        
            yarn.nodemanager.aux-services
            mapreduce_shuffle
        
        
            yarn.nodemanager.env-whitelist
            JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
        
    

    启动ResourceManager守护程序和NodeManager守护程序:

      $ sbin/start-yarn.sh
  2. 浏览Web界面以找到ResourceManager;默认情况下,它在以下位置可用:

  3. 运行MapReduce作业。

  4. 完成后,使用以下命令停止守护进程:

     $ sbin/stop-yarn.sh

全分布式运行

有关设置完全分布式的非重要群集的信息,请参见“群集设置”

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

open