指导手册04:运行MapReduce

 

Part 1:运行单个MapReduce任务

情景描述:

本次任务要求对HDFS目录中的数据文件/user/root/email_log.txt进行计算处理,统计出第个用户的登录次数。

情景分析:统计出每个用户登录次数,等同于求出每个email出现的次数,可以进一步抽象为统计每个单司出现的频次。在Hadoop官方提供的示例包中,正好有进行记频统计的模块。

1.Hadoop官方的示例程序包

在集群服务器的本地目录”$HADOOP_HOME/share/hadoop/mapreduce/中可发现示例程序包hadoop-mapreduce-examples-2.6.4.jar

模块名称

内容

multifilewc

统计多个文件中单词的数量。

pi

应用quasi-Monte Carlo 算法来估算圆周率π的值。

randomtextwriter

在每个数据节点随机生成1个10GB的文本文件。

wordcount

对输入文件中的单词进行频数统计。

wordmean

计算输入文件中单词的平均长度。

wordmedian

计算输入文件中单词长度的中位数。

wordstandarddeviation

计算输入文件中单词长度的标准差。

2.提交MapReduce任务给集群运行

提交MapReduce任务,通常使用hadoop jar 命令。它的基本用法格式如下

Hadoop jar <jar> [mainClass] args

因为hadoop jar 命令的附带参数较多,下面结合实际任务,对它的各项参数依次进行说明。

例:

[root@maste opt]# hadoop jar  $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-exampes-2.6.4.jar wordcount /user/root/emil_log.txt  /user/root/output (emil_log.txt请参考指导手册03上传)

参数说明:

$HADOOP_HOME:指主机中设置的环境变量

hadoop-mapreduce-exampes-2.6.4.jar :Hadoop官方提供的示例程序包

wordcount:程序中的主类名称

/user/root/emil_log.txt:HDFS上的输入文件名称

/user/root/output: HDFS上输出的文件目录

3.执行结果查看

Part 2: 管理多个MapReduce任务

情景描述:

Hadoop是一个多任务系统,它可以同时为多个用户、多个作业处理多个数据集。对于提交到Hadoop集群的多个任务,用户如何进行有效管理。比如,想知道集群完成了哪些任务;执行结果是成功还是失败;怎么检查任务的实际执行情况;如果某个任务执行时间过长,怎么中断它。

当用户提交了多个任务后,通常可以使用资源管理器的服务接口,对提交后的任务进行查询。当发现有异常时,可以中断当前作业或查询指定的日志文件。

1.查询MapReduce任务

例:调用Hadoop的示例程序包,采用Qqusi-Monte Carlo算法来估算PI的值。后面两个参数代表Map数量与每个Map的测量次数,参数的值越大,计算出来的结果精度越高。

Hadoop jar  /usr/local/hadoop-2.6.4/share/hadoop/mapredduce/hadoop-mapreduce-example-2.6.2.jar pi  10  100

查看MapReduce任务的计算机资源使用情况:http://master:8088,再单击左侧菜单栏的”Nodes”.

可以看到集群可用内存共有6GB,被使用了5.5G,剩余512MB,CPU核心有3个。

请运行程序,将你的集群信息填写如下:

可用内存

内存使用

剩余内存

CPU核心个数

继续查询当前任务的信息,单击左侧菜单栏中的“Applicatiions”,或者直接访问http://master:8088/cluster/apps显示如下结果。

它的状态值为“RUNNNING”,表示这个任务正执行中。

2.同时提交两个任务,进行观察

示例任务1:统计用户登录次数

[root@maste opt]# hadoop jar  $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-exampes-2.6.4.jar wordcount /user/root/emil_log.txt  /user/root/output1 (emil_log.txt请参考指导手册03上传)

示例任务2:执行估算PI值

[root@maste opt]# Hadoop jar  /usr/local/hadoop-2.6.4/share/hadoop/mapredduce/hadoop-mapreduce-example-2.6.2.jar pi  10  100

提交两个作业后,观察集群上的计算机资源使用情况。

作业0001的状态“RUNNING”,表示它正在执行中。而作业0002的状态是“ACCEPTED”,表示它已被资源管理器YARN接受,目前在等待被分配计算资源,只有当计算资源满足后,才会开始执行。

3.中断MapReduce任务

人为中断第1个作业:点击任务1的ID进入任务1,点击图中Kill Application即可中断该任务。

再次刷新任务界面,可以发现原来的作业1己被中断。

 

指导手册04:运行MapReduce的更多相关文章

  1. 指导手册05:MapReduce编程入门

    指导手册05:MapReduce编程入门   Part 1:使用Eclipse创建MapReduce工程 操作系统: Centos 6.8, hadoop 2.6.4 情景描述: 因为Hadoop本身 ...

  2. 指导手册02:伪分布式安装Hadoop(ubuntuLinux)

    指导手册02:伪分布式安装Hadoop(ubuntuLinux)   Part 1:安装及配置虚拟机 1.安装Linux. 1.安装Ubuntu1604 64位系统 2.设置语言,能输入中文 3.创建 ...

  3. 指导手册01:安装Hadoop

    指导手册01:安装Hadoop  Part 1:安装及配置虚拟机 1.安装Linux. (1)打开VMvirtualBox (2) 控制->新建虚拟机,输入虚拟机名称“marst+学号” 类型: ...

  4. Java 注解指导手册 – 终极向导

    原文链接 原文作者:Dani Buiza 译者:Toien Liu  校对:深海 编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它. 我们已经在Java Code Gee ...

  5. 指导手册06:HBase安装部署

    指导手册06:HBase安装部署 配置环境 1.参考文件: https://www.cnblogs.com/lzxlfly/p/7221890.html https://www.cnblogs.com ...

  6. 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS

    使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS  2014-10-10 (updated: 2016-05-22) 64246 153 本教程介绍 ...

  7. [转]hadoop运行mapreduce作业无法连接0.0.0.0/0.0.0.0:10020

    14/04/04 17:15:12 INFO mapreduce.Job:  map 0% reduce 0% 14/04/04 17:19:42 INFO mapreduce.Job:  map 4 ...

  8. eclipse运行mapreduce报错Permission denied

    今天用在eclipse-hadoop平台上运行map reduce(word count)出错了,错误信息为 org.apache.hadoop.security.AccessControlExcep ...

  9. 指导手册 07 安装配置HIVE

    指导手册 07 安装配置HIVE   安装环境及所需安装包: 1.操作系统:centos6.8 2.四台虚拟机:master :10.0.2.4, slave1:10.0.2.5,slave2:10. ...

随机推荐

  1. Web_Toy

    1 2 3 4 1.App录音 var r = plus.audio.getRecorder() # 创建录音对象 r.record({filename:"_doc/audio/" ...

  2. element table 二次封装 父子组件传值 组件通信

    新建一个组件(即子组件)table.vue 子组件编辑内容如下图所示 子组件通过props获取父组件传递过来的参数,如下图所示,type指明传递到子组件的数据类型,default指定默认值,一般不给 ...

  3. 2.0JAVA基础复习——JAVA语言的基础组成关键字和标识符

    JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...

  4. Maven Web Projest经Update Projest报错:Cannot nest 'myApp/src/main/resource' inside 'myApp/src'. To enable the nesting exclude 'main/' from 'myApp/src'

    1,报错场景 2,解决方法 修改pom.xml,去掉该行:<sourceDirectory>src/</sourceDirectory>

  5. SQL语句汇总——数据修改、数据查询

    首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>)  ...

  6. K8S学习笔记之Kubernetes 部署策略详解

    0x00 概述 在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了. 选择正确的部署策略是要依赖于我们的业务需求的,下面我们 ...

  7. Docker Overlay 工作原理

    Docker 原生Overlay 网络工作流程 如图:有两个Container 独立的容器节点.他们通过Overlay网路进行通信. 网卡设备 Container eth0:eth0它是Overlay ...

  8. WindowsAPI每日一练(1) MessageBoxA

    WindowsAPI每日一练系列 :https://www.cnblogs.com/LexMoon/category/1246238.html WindowsAPI每日一练(1) WinMain 要跟 ...

  9. 复旦大学2017--2018学年第一学期(17级)高等代数I期末考试第六大题解答

    六.(本题10分)  设 $M_n(K)$ 为数域 $K$ 上的 $n$ 阶方阵全体构成的线性空间, $A,B\in M_n(K)$, $M_n(K)$ 上的线性变换 $\varphi$ 定义为 $\ ...

  10. jQuery实现淘宝轮播图

    我爱撸码,撸码使我感到快乐大家好,我是Counter今天给大家分享的是利用jQuery来实现淘宝轮播图,揭开这层神秘的面纱,CSS样式就不做过多的赘述了,主要就是实现的原理,也就是jQuery,老样子 ...