Hadoop-2.7.3 单节点模式安装

版权声明:http://blog.csdn.net/anxpp https://blog.csdn.net/anxpp/article/details/54605416

原文出自:http://blog.anxpp.com/index.php/archives/1036/

Hadoop单节点模式安装

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

    本文基于:Ubuntu 16.04、Hadoop-2.7.3

一、概述

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

    1、Hadoop安装的三种模式

    (1)单机模式(standalone)

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

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

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

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

比如namenode,datanode,secondarynamenode,jobtracer,tasktracer这5个进程,都能在集群上看到。

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

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

        意思是说master上看到namenode,jobtracer,secondarynamenode可以安装在master节点,也可以单独安装。slave节点能看到datanode和tasktracer

    2、本文目的

        本文介绍如何设置和配置本地模式及单节点伪分布式Hadoop安装,以便使用Hadoop MapReduce和Hadoop分布式文件系统(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,然后解压:

 
 
  1. tar -zxvf hadoop-2.7.3.tar.gz

        修改文件夹名字:

 
 
  1. mv hadoop-3.7.3 hadoop

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

 
 
  1. sudo gedit /etc/profile

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

 
 
  1. # hadoop
  2. export HADOOP_HOME=/usr/lib/java/hadoop
  3. export PATH=${HADOOP_HOME}/bin:$PATH

        记得生效配置:

 
 
  1. source /etc/profile

        查看是否安装成功:

 
 
  1. anxpp@ubuntu:~$ hadoop version
  2. Hadoop2.7.3
  3. Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
  4. Compiledby root on 2016-08-18T01:41Z
  5. Compiledwith protoc 2.5.0
  6. From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
  7. 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},并在其后添加:

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

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

 
 
  1. anxpp@ubuntu:/$ /usr/lib/java/hadoop/bin/hadoop

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

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

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

四、本地模式的使用

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

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

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

五、伪分布式的使用

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

    1、配置

        各项配置如下所述:

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

 
 
  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://localhost:9000</value>
  5. </property>
  6. </configuration>

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

 
 
  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. </configuration>

    2、配置ssh免登录

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

 
 
  1. $ ssh localhost

        如果执行需要密码,执行以下命令即可:

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

    3、运行

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

    (1)格式化文件系统

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

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

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

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

    (3)浏览NameNode的Web界面

        默认情况下地址为:

        NameNode - http://localhost:50070/

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

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

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

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

    (6)运行示例

 
 
  1. $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'

    (7)检查输出文件

        将输出文件从分布式文件系统复制到本地文件系统并检查它们:

 
 
  1. $ bin/hdfs dfs -get output output
  2. $ cat output/*

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

 
 
  1. $ bin/hdfs dfs -cat output/*

    (8)停止守护进程

 
 
  1. $ sbin/stop-dfs.sh

    4、单节点上的YARN配置

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

        以下操作假定上述指令的(1)〜(4)步骤已经执行。

    (1)参数配置

        ① etc/hadoop/mapred-site.xml
 
 
  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>
        ② etc/hadoop/yarn-site.xml
 
 
  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. </configuration>

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

 
 
  1. $ sbin/start-yarn.sh

    (3)浏览ResourceManager的Web界面

        默认情况下地址为:

        ResourceManager - http://localhost:8088/

    (4)运行MapReduce作业

    (5)停止守护进程

 
 
  1. $ sbin/stop-yarn.sh

六、全分布式配置

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

猜你喜欢

转载自blog.csdn.net/anxpp/article/details/54605416
今日推荐