Hadoop 设置单个节点集群(Linux)

1. 目的

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

2.先决条件

2.1 支持的平台

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

2.2 所需软件

所需的Linux软件包括:
1. Java™ 必须安装。 推荐的 Java 版本在 HadoopJavaVersions 中描述。
2. 如果要使用可选的启动和停止脚本,则必须安装 ssh,并且必须运行 sshd 才能使用管理远程 Hadoop 守护程序的 Hadoop 脚本。 此外,建议安装 pdsh 以获得更好的 ssh 资源管理。

2.3 安装软件

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

例如在 Ubuntu Linux上:

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

3. 下载

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

4. 准备启动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集群:

5. 独立操作

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

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

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

6. 伪分布式操作

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

6.1 配置

使用以下内容:

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>

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

6.1 执行

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

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

hadoop 守护进程日志输出被写入$ HADOOP_LOG_DIR目录(默认为 $ HADOOP_HOME / logs)。
3. 浏览NameNode的Web界面; 默认情况下它可用于:

NameNode - http://localhost:9870/
  1. 制作执行MapReduce作业所需的HDFS目录:
 $ bin/hdfs dfs -mkdir /user
 $ bin/hdfs dfs -mkdir /user/<username>
  1. 将输入文件复制到分布式文件系统中:
 $ bin/hdfs dfs -mkdir input
 $ bin/hdfs dfs -put etc/hadoop/*.xml input
  1. 运行一些提供的示例:
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.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

6.1 YARN在单个节点上

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

以下说明假设已经执行了上述指令的1〜4个步骤。

  1. 配置参数如下:

etc/hadoop/mapred-site.xml:

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

<configuration>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

etc/hadoop/yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>
  1. 启动ResourceManager守护进程和NodeManager守护进程:
  $ sbin/start-yarn.sh

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

ResourceManager - http://localhost:8088/

4.运行MapReduce作业
5. 当你完成后,停止守护进程:

  $ sbin/stop-yarn.sh

7. 全分布式操作

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

原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值