title: Hadoop系列004-Hadoop运行模式(上)

date: 2018-11-20 14:27:00

updated: 2018-11-20 14:27:00

categories: Hadoop

tags: [Hadoop,框架,运行模式]


本人微信公众号,欢迎扫码关注!

Hadoop运行模式

1、概述

1)官方网址

2)Hadoop运行模式

  • 本地模式(默认模式):不需要启用单独进程,直接可以运行,测试和开发时使用。
  • 伪分布式模式:等同于完全分布式,只有一个节点。
  • 完全分布式模式:多个节点一起运行。

2、案例

2.1、本地文件运行Hadoop 案例
  • 官方grep案例

    • 1)创建在hadoop-2.7.2文件下面创建一个input文件夹

      [intflag@hadoop101 hadoop-2.7.2]$mkdir input
    • 2)将hadoop的xml配置文件复制到input

      [intflag@hadoop101 hadoop-2.7.2]$cp etc/hadoop/*.xml input
    • 3)执行share目录下的mapreduce程序

      [intflag@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
    • 4)查看输出结果

      [intflag@hadoop101 hadoop-2.7.2]$ cat output/*
  • 官方wordcount案例

    • 1)创建在hadoop-2.7.2文件下面创建一个wcinput文件夹

      [intflag@hadoop101 hadoop-2.7.2]$mkdir wcinput
    • 2)在wcinput文件下创建一个wc.input文件

      [intflag@hadoop101 hadoop-2.7.2]$cd wcinput
      [intflag@hadoop101 wcinput]$touch wc.input
    • 3)编辑wc.input文件

      [intflag@hadoop101 wcinput]$vim wc.input
      在文件中输入如下内容
      hadoop yarn
      hadoop mapreduce
      intflag
      intflag 保存退出::wq
    • 4)回到hadoop目录/opt/module/hadoop-2.7.2

    • 5)执行程序

      [intflag@hadoop101 hadoop-2.7.2]$hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
    • 6)查看结果

      [intflag@hadoop101 hadoop-2.7.2]$cat wcoutput/part-r-00000
      intflag 2
      hadoop 2
      mapreduce 1
      yarn 1
2.2、伪分布式运行Hadoop 案例
  • HDFS上运行MapReduce 程序

    • 1)分析:

      • (1)准备1台客户机
      • (2)安装jdk
      • (3)配置环境变量
      • (4)安装hadoop
      • (5)配置环境变量
      • (6)配置集群
      • (7)启动、测试集群增、删、查
      • (8)在HDFS上执行wordcount案例
    • 2)执行步骤

      • (1)配置集群

        • (a)配置:hadoop-env.sh

          • Linux系统中获取jdk的安装路径

            [root@ hadoop101 ~]# echo $JAVA_HOME
            /opt/module/jdk1.7.0_79
          • 修改JAVA_HOME 路径

            export JAVA_HOME=/opt/module/jdk1.7.0_79
        • (b)配置:/etc/hadoop/下的core-site.xml

          <!-- 指定HDFS中NameNode的地址 -->
          <property>
          <name>fs.defaultFS</name>
          <value>hdfs://hadoop101:8020</value>
          </property> <!-- 指定hadoop运行时产生文件的存储目录 -->
          <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/module/hadoop-2.7.2/data/tmp</value>
          </property>
        • (c)配置:hdfs-site.xml

          <!-- 指定HDFS副本的数量 -->
          <property>
          <name>dfs.replication</name>
          <value>1</value>
          </property>
      • (2)启动集群

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

          bin/hdfs namenode -format
        • (b)启动namenode

          sbin/hadoop-daemon.sh start namenode
        • (c)启动datanode

          sbin/hadoop-daemon.sh start datanode
      • (3)查看集群

        • (a)查看是否启动成功

          [root@hadoop ~]# jps
          13586 NameNode
          13668 DataNode
          13786 Jps
        • (b)查看产生的log日志

          当前目录:/opt/module/hadoop-2.7.2/logs
          
          [root@hadoop101 logs]# ls
          
          hadoop-root-datanode-hadoop.intflag.com.log
          hadoop-root-datanode-hadoop.intflag.com.out
          hadoop-root-namenode-hadoop.intflag.com.log
          hadoop-root-namenode-hadoop.intflag.com.out
          SecurityAuth-intflag.audit [root@hadoop101 logs]# cat hadoop-root-datanode-hadoop.intflag.com.log
        • (c)web端查看HDFS文件系统

          http://192.168.25.101:50070/dfshealth.html#tab-overview
          
          注意:如果不能查看,看如下帖子处理
          http://www.cnblogs.com/zlslch/p/6604189.html
      • (4)操作集群

        • (a)在hdfs文件系统上创建一个input文件夹

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop fs -mkdir -p /user/intflag/input
          
          或
          
          [intflag@hadoop101 hadoop-2.7.2]$ hdfs dfs -mkdir -p /user/intflag/input
        • (b)将测试文件内容上传到文件系统上

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop fs -put wcinput/wc.input /user/intflag/input
          
          或
          
          [intflag@hadoop101 hadoop-2.7.2]$ hdfs dfs -put wcinput/wc.input  /user/intflag/input
        • (c)查看上传的文件是否正确

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop fs -ls -R /
        • (d)在Hdfs上运行mapreduce程序

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/intflag/input/wc.input /user/intflag/output
        • (e)查看输出结果

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop fs -cat /user/intflag/output/part-r-00000
          intflag 2
          doop 1
          hadoop 1
          mapreduce 1
          yarn 1
        • (f)将测试文件内容下载到本地

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop fs -get /user/intflag/output/part-r-00000 ./wcoutput/
        • (g)删除输出结果

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop fs -rm -r /user/intflag/output
          18/11/21 10:17:43 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
          Deleted /user/intflag/output
        • (H)hadoop fs、hadoop dfs与hdfs dfs命令的区别

          • hadoop fs:使用面最广,可以操作任何文件系统。
          • hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。
  • YARN上运行MapReduce 程序

    • 1)分析:

      • (1)准备1台客户机
      • (2)安装jdk
      • (3)配置环境变量
      • (4)安装hadoop
      • (5)配置环境变量
      • (6)配置集群yarn上运行
      • (7)启动、测试集群增、删、查
      • (8)在yarn上执行wordcount案例
    • 2)执行步骤

      • (1)配置集群

        • (a)配置yarn-env.sh

          配置一下JAVA_HOME
          export JAVA_HOME=/opt/module/jdk1.7.0_79
        • (b)配置:mapred-env.sh

          配置一下JAVA_HOME
          export JAVA_HOME=/opt/module/jdk1.7.0_79
        • (c)配置yarn-site.xml

          <!-- reducer获取数据的方式 -->
          <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
          </property> <!-- 指定YARN的ResourceManager的地址 -->
          <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>hadoop101</value>
          </property>
        • (d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml

          <!-- 指定mr运行在yarn上 -->
          <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
          </property>
      • (2)启动集群

        • (a)启动namenode和datanode(先用jps查看,若已启动则不需要再启)

          sbin/hadoop-daemon.sh start namenode
          sbin/hadoop-daemon.sh start datanode
        • (b)启动resourcemanager

          sbin/yarn-daemon.sh start resourcemanager
          
          
        • (c)启动nodemanager

          sbin/yarn-daemon.sh start nodemanager
          
          
      • (3)集群操作

        • (a)yarn的浏览器页面查看:http://hadoop101:8088/cluster

        • (b)删除文件系统上的output文件(若无则不用删除)

          bin/hdfs dfs -rm -R /user/mapreduce/wordcount/output
          
          
        • (c)执行mapreduce程序

          hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/intflag/input /user/intflag/output
          
          
        • (d)查看运行结果

          [intflag@hadoop101 hadoop-2.7.2]$ hadoop fs -cat /user/intflag/output/part-r-00000
          intflag 2
          doop 1
          hadoop 1
          mapreduce 1
          yarn 1
  • 修改本地临时文件存储目录

    • 1)停止进程

      [intflag@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
      stopping nodemanager
      [intflag@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager
      stopping resourcemanager
      [intflag@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop namenode
      stopping namenode
      [intflag@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop datanode
      stopping datanode
      [intflag@hadoop101 hadoop-2.7.2]$
    • 2)修改hadoop.tmp.dir

      <!-- 指定hadoop运行时产生文件的存储目录 -->
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/opt/module/hadoop-2.7.2/data/tmp</value>
      </property>
    • 3)删除旧的临时文件

      [intflag@hadoop101 tmp]$ rm -rf hadoop-intflag
      [intflag@hadoop101 tmp]$ rm -rf hadoop-intflag-namenode.pid
      [intflag@hadoop101 hadoop-2.7.2]$ rm -rf logs/
    • 4)格式化NameNode

      [intflag@hadoop101 hadoop-2.7.2]$ hadoop namenode -format
      
      
    • 5)启动所有进程

      [intflag@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
      [intflag@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
      [intflag@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
      [intflag@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
    • 6)查看/opt/module/hadoop-2.7.2/data/tmp这个目录下的内容。

  • Hadoop配置文件说明

    • Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

    • (1)默认配置文件:存放在hadoop相应的jar包中

      [core-default.xml]
      hadoop-common-2.7.2.jar/ core-default.xml [hdfs-default.xml]
      hadoop-hdfs-2.7.2.jar/ hdfs-default.xml [yarn-default.xml]
      hadoop-yarn-common-2.7.2.jar/ yarn-default.xml [core-default.xml]
      hadoop-mapreduce-client-core-2.7.2.jar/ core-default.xml
    • (2)自定义配置文件:存放在$HADOOP_HOME/etc/hadoop

      core-site.xml
      
      hdfs-site.xml
      
      yarn-site.xml
      
      mapred-site.xml
      
      
2.3、完全分布式部署Hadoop
  • 见Hadoop系列005-Hadoop运行模式(下)

Hadoop系列004-Hadoop运行模式(上)的更多相关文章

  1. Hadoop入门 完全分布式运行模式-准备

    目录 Hadoop运行环境 完全分布式运行模式(重点) scp secure copy 安全拷贝 1 hadoop102上的JDK文件推给103 2 hadoop103从102上拉取Hadoop文件 ...

  2. Hadoop入门 完全分布式运行模式-集群配置

    目录 集群配置 集群部署规划 配置文件说明 配置集群 群起集群 1 配置workers 2 启动集群 总结 3 集群基本测试 上传文件到集群 查看数据真实存储路径 下载 执行wordcount程序 配 ...

  3. 安装Hadoop系列 — 安装Hadoop

    安装步骤如下: 1)下载hadoop:hadoop-1.0.3     http://archive.apache.org/dist/hadoop/core/hadoop-1.0.3/   2)解压文 ...

  4. Tomcat系列(8)——Tomcat运行模式连接数和线程池

    Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据:然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Reques ...

  5. 安装Hadoop系列 — 导入Hadoop源码项目

    将Hadoop源码导入Eclipse有个最大好处就是通过 "ctrl + shift + r" 可以快速打开Hadoop源码文件. 第一步:在Eclipse新建一个Java项目,h ...

  6. Hadoop系列005-Hadoop运行模式(下)

    本人微信公众号,欢迎扫码关注! Hadoop运行模式(下) 2.3.完全分布式部署Hadoop 1)分析: 1)准备3台客户机(关闭防火墙.静态ip.主机名称) 2)安装jdk 3)配置环境变量 4) ...

  7. ubuntu上Hadoop三种运行模式的部署

    Hadoop集群支持三种运行模式:单机模式.伪分布式模式,全分布式模式,下面介绍下在Ubuntu下的部署 (1)单机模式 默认情况下,Hadoop被配置成一个以非分布式模式运行的独立JAVA进程,适合 ...

  8. 啃掉Hadoop系列笔记(04)-Hadoop运行模式之伪分布式模式

    伪分布式模式等同于完全分布式,只是她只有一个节点. 一) HDFS上运行MapReduce 程序 (1)配置集群 (a)配置:hadoop-env.sh Linux系统中获取jdk的安装路径:

  9. 啃掉Hadoop系列笔记(03)-Hadoop运行模式之本地模式

    Hadoop的本地模式为Hadoop的默认模式,不需要启用单独进程,直接可以运行,测试和开发时使用. 在<啃掉Hadoop系列笔记(02)-Hadoop运行环境搭建>中若环境搭建成功,则直 ...

随机推荐

  1. Reactor模式的.net版本简单实现--DEMO

    近期在学习DotNetty,遇到不少的问题.由于dotnetty是次netty的.net版本的实现.导致在网上叙述dotnetty的原理,以及实现技巧方面的东西较少,这还是十分恼人的.在此建议学习和使 ...

  2. Golang Multipart File Upload Example

    http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload-example/ The Go language is ...

  3. TestNG进行接口测试,脚本及可维护性框架

    注: 以下内容引自http://blog.csdn.net/u010321474/article/details/49977969 TestNG进行接口测试,脚本及可维护性框架 原创 2015年11月 ...

  4. 在tomcat下部署两个或多个项目时 log4j和web.xml配置webAppRootKey 的问题(转)

    在tomcat下部署两个或多个项目时 web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为"webapp.root",如下: <!-- 应用路径 ...

  5. watch.go

    package: } ,) ), ), ) ) , ];]]] :] ].Err()]:] ].Kv.ModRevision         w.resuming = append(w.resumin ...

  6. 关于MySQL死锁

    最近项目中遇到一个问题,使用Spring事务嵌套时,导致MySQL死锁.记录一下,时刻提醒自己. 场景如下, 事务嵌套, 最外层有默认事务, 嵌套一个独立事务, 独立事务和外部事务同时操作一张表.

  7. 解锁 vmware esxi 6.7 并安装 mac os 10.13

    1.安装 esxi 6.7 2.下载 unlocker 2.1.1.zip 3.上传 unlocker 2.1.1.zip esxi的磁盘中 4.开启esxi的ssh登录 5.使用 ssh 登录 es ...

  8. BZOJ_2343_[Usaco2011 Open]修剪草坪 _单调队列_DP

    BZOJ_2343_[Usaco2011 Open]修剪草坪 _单调队列_DP 题意: N头牛,每头牛有一个权值,选择一些牛,要求连续的不能超过k个,求选择牛的权值和最大值 分析: 先考虑暴力DP,f ...

  9. .Net Remoting 调用远程对象

    根据需求,我们的系统必须以C/S方式构建,而且是三层架构,这样一来,就出现了服务器端和客户端通信的问题. 为了解决双方的通信问题,还要考虑效率.性能等方面,经过分析.试验,我们根据效率.移植.开发难易 ...

  10. eclipse部署项目到tomcat

    以管理员身份运行Eclipse 1.移除 2.open 3.改成这样,然后ctrl+s保存 4.重新运行即可.