第四章 Hadoop运行模式

    Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式

    Hadoop官方网站 : https://hadoop.apache.org    

    文档链接 :https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html

 

  • 4.1本地运行模式

  • 4.1.1官方Grep案例

    1、在hadoop-2.7.7文件下面创建一个input文件夹

[ge@hadoop101 hadoop-2.7.7]$ mkdir input

    2、将Hadoop的xml配置文件复制到input

[ge@hadoop101 hadoop-2.7.7]$ cp etc/hadoop/*.xml input

    3、执行share目录下的MapReduce程序

[ge@hadoop101 hadoop-2.7.7]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input output 'dfs[a-z.]+'

    4、查看输出结果  

[ge@hadoop101 hadoop-2.7.7]$ cat output/*

  第四章  Hadoop运行模式

 

 

  • 4.1.2官方WordCount案例

    1、在hadoop-2.7.7文件下面创建一个wcinput文件夹

[ge@hadoop101 hadoop-2.7.7]$ mkdir wcinput

    2、在wcinput文件夹下创建一个wc.input文件

[ge@hadoop101 hadoop-2.7.7]$ cd wcinput/

 [ge@hadoop101 wcinput]$ touch wc.input

    3、编辑wc.input文件

[ge@hadoop101 wcinput]$ vim wc.input 

     添加下面内容

hadoop yarn
hadoop mapreduce
ge
ge

     保存退出:wq

    4、回到Hadoop 目录 /opt/module/hadoop-2.7.7

    5、执行程序

[ge@hadoop101 hadoop-2.7.7]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount wcinput/ wcoutput

    6、查看结果

[ge@hadoop101 hadoop-2.7.7]$ cat wcoutput/*

第四章  Hadoop运行模式

 

 

 

  • 4.2伪分布式运行模式

  • 4.2.1启动HDFS并运行MapRedcue程序

    1、分析

    (1)配置集群

    (2)启动、测试集群增、删、查

    (3)执行WordCount案例

    2、执行步骤

    (1)配置集群

      (a)配置:hadoop-env.sh

        Linux系统中获得JDK的安装路径

[ge@hadoop101 ~]$ echo $JAVA_HOME 
/opt/module/jdk1.8.0_161

        修改JAVA_HOME路径

export JAVA_HOME=/opt/module/jdk1.8.0_161

      (b)配置:core-site.xml

<!--指定HDFS中NameNode的地址-->
    <property>    
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop101:9000</value>
    </property>
<!--指定Hadoop运行时产生文件的存储目录-->
    <property>    
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.7/data/tmp</value>
    </property>

      (c)配置hdfs-site.xml

<!--指定HDFS副本的数量-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
     </property>

    (2)启动集群

      (a)格式化NameNode(第一次启动时格式化,以后不要总格式化)

[ge@hadoop101 hadoop-2.7.7]$ bin/hdfs namenode -format

      (b)启动NameNode

[ge@hadoop101 hadoop-2.7.7]$ hadoop-daemon.sh start namenode

      (c)启动DataNode

[ge@hadoop101 hadoop-2.7.7]$ hadoop-daemon.sh start datanode

    (3)查看集群

      (a)查看是否启动成功

[ge@hadoop101 hadoop-2.7.7]$ jps
4738 NameNode
4884 DataNode
4964 Jps

      注意:jps是JDK中的命令,不是Linux命令,不安装JDK,不能使用jps.

      (b)web端查看HDFS文件系统

        http://hadoop101:50070/dfshealth.html#tab-overview

 

第四章  Hadoop运行模式

 

 

        如果不能查看,看如下帖子处理

        https://www.cnblogs.com/zlslch/p/6604189.html

      (c)查看产生的Log日志s

        说明:当企业遇到Bug时,经常根据日志提示信息分析问题、解决bug

        当前目录:/opt/module/hadoop-2.7.7/logs

[ge@hadoop101 logs]$ ll
总用量 64
-rw-rw-r--. 1 ge ge 24549 3月   8 14:31 hadoop-ge-datanode-hadoop101.log
-rw-rw-r--. 1 ge ge   713 3月   8 14:31 hadoop-ge-datanode-hadoop101.out
-rw-rw-r--. 1 ge ge 28509 3月   8 14:31 hadoop-ge-namenode-hadoop101.log
-rw-rw-r--. 1 ge ge   713 3月   8 14:27 hadoop-ge-namenode-hadoop101.out
-rw-rw-r--. 1 ge ge   761 3月   8 14:26 hadoop-ge-nodename-hadoop101.out
-rw-rw-r--. 1 ge ge     0 3月   8 14:27 SecurityAuth-ge.audit
[ge@hadoop101 logs]$ cat hadoop-ge-datanode-hadoop101.log

      (d)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?

        格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到以往数据。所以,格式化NameNode时,一点要先删除data数据和log日志,然后再格式化NameNode。

 

  • 4.2.2启动YARN并运行MapRedcue程序

   1、分析

    (1)配置集群

    (2)启动、测试集群增、删、查

    (3)执行WordCount案例

    2、执行步骤

    (1)配置集群

      (a)配置:yarn-env.sh

        Linux系统中获得JDK的安装路径

[ge@hadoop101 ~]$ echo $JAVA_HOME 
/opt/module/jdk1.8.0_161

        修改JAVA_HOME路径

export JAVA_HOME=/opt/module/jdk1.8.0_161

      (b)配置yarn-site.xml

<!--Reducer获取数据的方式-->
    <property>    
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<!--指定YARN的ResourceManager的地址-->
    <property>    
        <name>yarn.nodemanager.hostname</name>
        <value>hadoop101</value>
    </property>

      (c)配置:mapres-env.sh

        配置一下JAVA_HOME,修改JAVA_HOME路径

export JAVA_HOME=/opt/module/jdk1.8.0_161

      (d)配置:(对mapred-site.xml.template重新命名为)mapred-site.xml

[ge@hadoop101 hadoop]$  mv mapred-site.xml.template mapred-site.xml 
[ge@hadoop101 hadoop]$ vim mapred-site.xml

<configuration>
  <!--指定MR运行在YARN上-->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>  
  </property>
</configuration>

    (2)启动集群

      (a)启动前,必须保证NameNode 和 DataNode 已经启动

      (b)启动resourcemanager

[ge@hadoop101 hadoop-2.7.7]$ sbin/yarn-daemon.sh start resourcemanager

      (c)启动NodeManager

[ge@hadoop101 hadoop-2.7.7]$ sbin/yarn-daemon.sh start nodemanager

    (3)集群操作

      (a)YARN的浏览器页面查看,如下图所示      

        http://hadoop101:8088/cluster

第四章  Hadoop运行模式

 

 

  • 4.3完全分布式运行模式(开发重点)

    分析:

      1)准备三台客户机(关闭防火墙,静态ip,主机名称)

      2)安装JDK

      3)配置环境变量

      4)安装Hadoop

      5)配置环境变量

      6)配置集群

      7)单点启动

      8)配置ssh

      9)群起并测试集群

  • 4.3.1 虚拟机准备

    详见3.1章

  • 4.3.2 编写集群分发脚本xsync

  1、scp(secure copy)安全拷贝

    (1)scp 定义:

      scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)

    (2)基本语法        

      scp   -r    $spdir/$fname      $user@hadoop$host:$spdir/$fname

      命令  递归  要拷贝的文件路径/名称  目的用户@主机:目的路径/名称

    (3)案例实操

      (a)在hadoop1上,将hadoop1中 /opt/module 目录下的软件拷贝到hadoop102上

 

上一篇:Juniper SRX防火墙-静态NAT(一)


下一篇:luogu P6187 [NOI Online 提高组]最小环