Hadoop读书笔记系列文章:http://blog.csdn.net/caicongyang/article/category/2166855
1.MapReduce 计数器的作用
2.MapReduce自带的计数器
14/11/26 22:28:51 INFO mapred.JobClient: Counters: 19 14/11/26 22:28:51 INFO mapred.JobClient: File Output Format Counters 14/11/26 22:28:51 INFO mapred.JobClient: Bytes Written=25 14/11/26 22:28:51 INFO mapred.JobClient: FileSystemCounters 14/11/26 22:28:51 INFO mapred.JobClient: FILE_BYTES_READ=343 14/11/26 22:28:51 INFO mapred.JobClient: HDFS_BYTES_READ=42 14/11/26 22:28:51 INFO mapred.JobClient: FILE_BYTES_WRITTEN=128056 14/11/26 22:28:51 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=25 14/11/26 22:28:51 INFO mapred.JobClient: File Input Format Counters 14/11/26 22:28:51 INFO mapred.JobClient: Bytes Read=21 14/11/26 22:28:51 INFO mapred.JobClient: Map-Reduce Framework 14/11/26 22:28:51 INFO mapred.JobClient: Map output materialized bytes=47 14/11/26 22:28:51 INFO mapred.JobClient: Map input records=2 14/11/26 22:28:51 INFO mapred.JobClient: Reduce shuffle bytes=0 14/11/26 22:28:51 INFO mapred.JobClient: Spilled Records=4 14/11/26 22:28:51 INFO mapred.JobClient: Map output bytes=37 14/11/26 22:28:51 INFO mapred.JobClient: Total committed heap usage (bytes)=366034944 14/11/26 22:28:51 INFO mapred.JobClient: SPLIT_RAW_BYTES=97 14/11/26 22:28:51 INFO mapred.JobClient: Combine input records=0 14/11/26 22:28:51 INFO mapred.JobClient: Reduce input records=2 14/11/26 22:28:51 INFO mapred.JobClient: Reduce input groups=2 14/11/26 22:28:51 INFO mapred.JobClient: Combine output records=0 14/11/26 22:28:51 INFO mapred.JobClient: Reduce output records=2 14/11/26 22:28:51 INFO mapred.JobClient: Map output records=2
3.自定义计数器
package counter; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Counter; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import org.apache.hadoop.mapreduce.lib.partition.HashPartitioner; /** * * <p> * Title: WordCount.java * Package counter * </p> * <p> * Description: 自定义计数器 * <p> * @author Tom.Cai * @created 2014-11-26 下午10:47:32 * @version V1.0 * */ public class WordCount { private static final String INPUT_PATH = "hdfs://192.168.80.100:9000/hello"; private static final String OUT_PATH = "hdfs://192.168.80.100:9000/out"; public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); FileSystem fileSystem = FileSystem.get(new URI(INPUT_PATH), conf); Path outPath = new Path(OUT_PATH); if (fileSystem.exists(outPath)) { fileSystem.delete(outPath, true); } Job job = new Job(conf, WordCount.class.getSimpleName()); FileInputFormat.setInputPaths(job, INPUT_PATH); job.setInputFormatClass(TextInputFormat.class); job.setMapperClass(MyMapper.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(LongWritable.class); job.setPartitionerClass(HashPartitioner.class); job.setNumReduceTasks(1); job.setReducerClass(MyReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(LongWritable.class); FileOutputFormat.setOutputPath(job, new Path(OUT_PATH)); job.setOutputFormatClass(TextOutputFormat.class); job.waitForCompletion(true); } static class MyMapper extends Mapper<LongWritable, Text, Text, LongWritable> { @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { <span style="color:#ff0000;"> /** * 计数器的使用 */ Counter mycounter = context.getCounter("MyCounter", "hello"); if (value.toString().contains("hello")) { mycounter.increment(1L); }</span> String[] splited = value.toString().split("\t"); for (String word : splited) { context.write(new Text(word), new LongWritable(1)); } } } static class MyReducer extends Reducer<Text, LongWritable, Text, LongWritable> { @Override protected void reduce(Text key, Iterable<LongWritable> value, Context context) throws IOException, InterruptedException { long count = 0L; for (LongWritable times : value) { count += times.get(); } context.write(key, new LongWritable(count)); } } }
3.自定义计数器后输出
4/11/26 22:45:38 INFO mapred.JobClient: Counters: 20
14/11/26 22:45:38 INFO mapred.JobClient: File Output Format Counters
14/11/26 22:45:38 INFO mapred.JobClient: Bytes Written=25
14/11/26 22:45:38 INFO mapred.JobClient: MyCounter
14/11/26 22:45:38 INFO mapred.JobClient: hello=2
14/11/26 22:45:38 INFO mapred.JobClient: FileSystemCounters
14/11/26 22:45:38 INFO mapred.JobClient: FILE_BYTES_READ=343
14/11/26 22:45:38 INFO mapred.JobClient: HDFS_BYTES_READ=42
14/11/26 22:45:38 INFO mapred.JobClient: FILE_BYTES_WRITTEN=128036
14/11/26 22:45:38 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=25
14/11/26 22:45:38 INFO mapred.JobClient: File Input Format Counters
14/11/26 22:45:38 INFO mapred.JobClient: Bytes Read=21
14/11/26 22:45:38 INFO mapred.JobClient: Map-Reduce Framework
14/11/26 22:45:38 INFO mapred.JobClient: Map output materialized bytes=47
14/11/26 22:45:38 INFO mapred.JobClient: Map input records=2
14/11/26 22:45:38 INFO mapred.JobClient: Reduce shuffle bytes=0
14/11/26 22:45:38 INFO mapred.JobClient: Spilled Records=4
14/11/26 22:45:38 INFO mapred.JobClient: Map output bytes=37
14/11/26 22:45:38 INFO mapred.JobClient: Total committed heap usage (bytes)=366034944
14/11/26 22:45:38 INFO mapred.JobClient: SPLIT_RAW_BYTES=97
14/11/26 22:45:38 INFO mapred.JobClient: Combine input records=0
14/11/26 22:45:38 INFO mapred.JobClient: Reduce input records=2
14/11/26 22:45:38 INFO mapred.JobClient: Reduce input groups=2
14/11/26 22:45:38 INFO mapred.JobClient: Combine output records=0
14/11/26 22:45:38 INFO mapred.JobClient: Reduce output records=2
14/11/26 22:45:38 INFO mapred.JobClient: Map output records=2
欢迎大家一起讨论学习!
有用的自己收!
记录与分享,让你我共成长!欢迎查看我的其他博客;我的博客地址:http://blog.csdn.net/caicongyang
相关推荐
(1)熟悉Hadoop开发包 (2)编写MepReduce程序 (3)调试和运行MepReduce程序 (4)完成上课老师演示的内容 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 二、实验内容 1.单词计数实验...
### Hadoop集群配置及MapReduce开发手册知识点梳理 #### 一、Hadoop集群配置说明 ##### 1.1 环境说明 本手册适用于基于CentOS 5系统的Hadoop集群配置,具体环境配置如下: - **操作系统**:CentOS 5 - **JDK版本...
### Hadoop集群配置及MapReduce开发手册知识点梳理 #### 一、Hadoop集群配置 **1.1 环境说明** - **操作系统**: CentOS 5 - **JDK版本**: Sun Java 6 - **SSH**: 已安装 - **Eclipse版本**: 3.4.2 (Linux版) - **...
本文将详细阐述如何搭建Hadoop集群以及进行MapReduce程序的关键点个性化开发。 首先,我们来看任务1——Hadoop集群的部署。这一步至关重要,因为它为整个大数据处理系统提供了基础架构。在虚拟机中安装Ubuntu Kylin...
文档较详尽的讲述了MR的简介,MR初学分析示例(有代码)、MR特性,MR的执行过程(有代码),MR单元测试介绍(有代码)、HA的架构和配置、同时也向大众推荐了两本书。其中部分有较为详尽的链接以供参考。
Hadoop介绍,HDFS和MapReduce工作原理
在这个项目“基于 Hadoop 平台,使用 MapReduce 编程,统计NBA球员五项数据”中,我们将深入探讨如何利用 Hadoop 的核心组件 MapReduce 对 NBA 球员的数据进行分析。 MapReduce 是一种编程模型,用于大规模数据集...
Hadoop 权威指南读书笔记 我自己画的一张图
赠送jar包:hadoop-mapreduce-client-core-2.5.1.jar; 赠送原API文档:hadoop-mapreduce-client-core-2.5.1-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-core-2.5.1-sources.jar; 赠送Maven依赖信息文件:...
【尚硅谷大数据技术之Hadoop(MapReduce)1】深入解析MapReduce MapReduce是Google提出的一种用于处理和生成大规模数据集的编程模型,被广泛应用于大数据处理领域。Hadoop将其作为核心组件,实现了分布式计算的功能...
hadoop-mapreduce-examples-2.7.1.jar
Hadoop.MapReduce 和 YARN 笔记 本节笔记主要介绍了 Hadoop.MapReduce 和 YARN 的基本概念、组成部分、工作原理以及实践应用。 一、MapReduce 概念 MapReduce 是 Hadoop 的核心组件之一,负责处理大规模数据。...
【标题】Hadoop MapReduce 实现 WordCount MapReduce 是 Apache Hadoop 的核心组件之一,它为大数据处理提供了一个分布式计算框架。WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的...
对Hadoop中的HDFS、MapReduce、Hbase系列知识的介绍。如果想初略了解Hadoop 可下载观看
赠送jar包:hadoop-mapreduce-client-jobclient-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-jobclient-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-jobclient-2.6.5-sources.jar; 赠送...
四、hadoop学习笔记之二:MapReduce基本编程 MapReduce编程模型包括Map阶段和Reduce阶段。Map阶段将输入数据分解为键值对,然后分发到各个节点处理;Reduce阶段则负责聚合Map阶段的结果,生成最终输出。开发者需要...
详细介绍 Hadoop 家族中的 MapReduce 原理 MapReduce 是 Hadoop 家族中的核心组件之一,是一个分布式运算程序的编程框架。MapReduce 的核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式...
在Hadoop生态系统中,MapReduce是一种分布式计算框架,它允许用户编写并运行处理大量数据的程序。这个"mapred.zip"文件显然包含了与Hadoop MapReduce相关的测试样例、文档和源码,这对于理解MapReduce的工作原理以及...