Hadoop官方文档(1) — 设置单节点集群

Hadoop官方文档 — 设置单节点集群 来源

目标

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

准备工作

支持平台

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

需要的软件

  1. 系统必须安装Java。HadoopJavaVersion描述了推荐的Java版本
  2. 如果要使用可选的启动和停止脚本,则必须安装ssh,并且必须运行sshd才能使用管理远程hadoop守护进程的hadoop脚本。此外,建议安装pdsh以获得更好的ssh资源管理。

安装软件

如果你的集群没有以上必须的软件,那么你应该先安装。在ubuntu中可以使用以下方式安装:

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

下载

要获得hadoop发行版,请从apache下载镜像下载最近的稳定发行版

启动hadoop集群前的准备工作

解压下载的hadoop二进制压缩包。编辑etc/hadoop/hadoop-env.sh,定义以下参数:

# 设置你的Java安装路径(JAVA_HOME),这里我以我自己的系统为例
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_152

尝试运行以下命令:

bin/hadoop

这个命令会显示hadoop脚本的使用文档。

现在你可以通过以下三种模式启动你的hadoop集群:

  • 本地(单机)模式
  • 伪分布式模式
  • 完全分布式模式

单机操作

默认情况下,hadoop被设置为以Java单进程的形式运行在非分布式模式下。这有助于我们进行调试。

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

mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.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>

设置不需要密码的ssh

现在检查你能不能不使用密码就通过ssh登录到localhost:

ssh localhost

如果你不能不使用密码就登录到localhost,执行以下命令:

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 on Single Node

  1. 格式化文件系统

    bin/hdfs namenode -format
  2. 启动NameNode守护进程和DataNode守护进程

    sbin/start-dfs.sh

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

  3. 浏览NameNode的web界面,默认为:

  4. 创建执行MapReduce作业所需要的HDFS文件夹:

    bin/hdfs dfs -mkdir /user
    
    # 这里的username是你ssh登录时的文件名
    
    bin/hdfs dfs -mkdir /user/<username>
  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.0.0.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:

    <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>
       <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>
  2. 启动ResourceManager守护进程和NodeManager守护进程:

    sbin/start-yarn.sh
  3. 浏览ResourceManager的Web界面;默认情况下它位于:

  4. 运行MapReduce作业

  5. 执行完所有操作后,可以使用以下命令停止守护进程:

    sbin/stop-yarn.sh

完全分布式操作

参考Cluster Setup

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值