Hadoop 伪集群

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

目的

本文档介绍如何搭建单节点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 中配置以下内容:

<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>

设置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界面; 默认情况下它可用于:

  2. 制作执行MapReduce作业所需的HDFS目录:

  $ bin/hdfs dfs -mkdir /user
  $ bin/hdfs dfs -mkdir /user/<username>
  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:
<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>
  1. 启动ResourceManager守护进程和NodeManager守护进程:
  $ sbin/start-yarn.sh
  1. 浏览ResourceManager的Web界面; 默认情况下它可用于:

  2. 运行MapReduce作业。

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

  $ sbin/stop-yarn.sh

全分布式操作

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、系统参数配置优化 1、系统内核参数优化配置 修改文件/etc/sysctl.conf,添加如下配置,然后执行s...
    张伟科阅读 9,169评论 0 14
  • 看到题目有没有一种高大上的感觉?毛线,当前是个人、是个公司都在说自己搞大数据,每天没有几个PB的数据入库,每天没有...
    丁小晶的晶小丁阅读 9,980评论 0 50
  • 【多图预警】
    onedove阅读 3,283评论 0 5
  • 递归的底层实现其实是一个栈.栈的特点是后进先出,也就是最后进入栈的事件是最先被处理的. 递归就是这样运作.比如计算...
    Hello_World2017阅读 2,870评论 0 0
  • 五点哭醒让我不知所措,困意全无,也记不清这是此生第几次哭醒,但总会指引我一些东西,梦里,去给妈妈的奶奶扫墓,然后她...
    莱茵雨寄阅读 1,755评论 0 0