Hadoop单节点模式安装

官方教程:http://hadoop.apache.org/docs/r2.7.3/

一、概述

本文参考官方文档介绍Hadoop单节点模式(本地模式及伪分布式模式)安装(Setting up a Single Node Cluster)。

1、Hadoop安装的三种模式

(1)单机模式(standalone

单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。

此程序一般不建议安装,网络上很少这方面资料。

  (2)伪分布模式(Pseudo-Distributed Mode

伪分布模式在单节点集群上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

比如namenodedatanodesecondarynamenodejobtracertasktracer5个进程,都能在集群上看到。

  (3)全分布模式(Fully Distributed Mode

Hadoop守护进程运行在一个集群上。

意思是说master上看到namenode,jobtracersecondarynamenode可以安装在master节点,也可以单独安装。slave节点能看到datanodetasktracer

2、本文目的

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

3、平台支持

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

Windows也是一个受支持的平台,但本文仅适用于Linux

4、需要的其他软件(前提条件)

ssh

java

二、Hadoop下载与安装

官网:http://hadoop.apache.org/

下载:http://hadoop.apache.org/releases.html

    先从官网下载响应的hadoop,然后解压:

tar -zxvf hadoop-2.7.3.tar.gz

修改文件夹名字:

mv hadoop-3.7.3 /usr/lib/java/hadoop

     配置环境变量,编辑profile文件:

sudo gedit /etc/profile

然后在文件末尾追加如下内容:

# hadoop
export HADOOP_HOME=/usr/lib/java/hadoop
export PATH=${HADOOP_HOME}/bin:$PATH

记得生效配置:

source /etc/profile

查看是否安装成功:

anxpp@ubuntu:~$ /usr/lib/java/hadoop/bin/hadoop version
Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /usr/lib/java/hadoop/share/hadoop/common/hadoop-common-2.7.3.jar

三、集群前的准备工作

1、配置 hadoop/etc/hadoop/hadoop-env.sh文件

注释掉25行的#export JAVA_HOME=${JAVA_HOME},并在其后添加:

export JAVA_HOME=/usr/lib/java/jdk1.8.0_111

现在可以输入命令测试,这里使用Hadoop/bin/hadoop:

anxpp@ubuntu:~$ /usr/lib/java/hadoop/bin/hadoop

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

    现在就可以以三种受支持的模式之一启动了:

    ① Local (Standalone) Mode:本地(独立)模式
    ② Pseudo-Distributed Mode:伪分布模式
    ③ Fully-Distributed Mode:全分布模式

四、本地模式的使用

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

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

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

五、伪分布式的使用

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

1、配置

各项配置如下所述:

(1)etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

(2)etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

2、配置ssh免登录

首先检查ssh到本地是否需要密码:

$ ssh localhost

如果执行需要密码,执行以下命令即可(顺便提一下:~/表示当前用户主目录):

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

3、运行

以下说明是在本地运行MapReduce。在YARN上执行一些操作将在后面部分介绍。

(1)格式化文件系统

$ /usr/lib/java/hadoop/bin/hdfs namenode -format

(2)启动NameNode守护程序和DataNode守护程序

$ usr/lib/java/hadoop/sbin/start-dfs.sh

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

(3)浏览NameNodeWeb界面

默认情况下地址为:

    NameNode - http://localhost:50070/

(4)创建执行MapReduce作业所需的HDFS目录

$ /usr/lib/java/hadoop/bin/hdfs dfs -mkdir /user
$ /usr/lib/java/hadoop/bin/hdfs dfs -mkdir /user/<username>

(5)将输入文件复制到分布式文件系统中

$ /usr/lib/java/hadoop/bin/hdfs dfs -put etc/hadoop input

(6)运行示例

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.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

4、单节点上的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>
</configuration>

(2)启动ResourceManager守护程序和NodeManager守护程序

$ sbin/start-yarn.sh

(3)浏览ResourceManagerWeb界面

默认情况下地址为:

    ResourceManager - http://localhost:8088/

(4)运行MapReduce作业

(5)停止守护进程

$ sbin/stop-yarn.sh

六、全分布式配置

    该部分内容会独立一篇文章介绍,完成后此处会给出连接。