- 浏览: 194289 次
文章分类
最新评论
public static class mapper extends Mapper<Text, BytesWritable, Text , Text>{ private Counter c ; @Override protected void setup(Context context) throws IOException, InterruptedException { c = context.getCounter("FILE", "COUNT"); } @Override protected void map(Text key, BytesWritable value, Context context) throws IOException, InterruptedException { c.increment(1); context.write(key, new Text(value.getBytes())); } @Override protected void cleanup(Context context) throws IOException, InterruptedException { } } public static class reducer extends Reducer<Text, Text, Text, Text>{ @Override protected void reduce(Text arg0, Iterable<Text> arg1, Context context) throws IOException, InterruptedException { Iterator<Text> itr = arg1.iterator(); while(itr.hasNext()){ itr.next(); } context.write(arg0, new Text("heihei")); } } public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException{ Configuration conf = new Configuration(); Job job = new Job(conf); job.setJarByClass(testCounter.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.setMapperClass(mapper.class); job.setReducerClass(reducer.class); job.setInputFormatClass(WholeFileInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(Text.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); job.waitForCompletion(true); String num = job.getCounters().findCounter("Map-Reduce Framework", "Map input records").getName(); System.out.println(num); }
获取计数器只能在job完成之后,也就是job.waitForCompletion(true);之后,放在之前的话回报一个非法安全的错误,但是在reducer函数里面,则不错报错,也不能获取计数器值,可能设计人员没有扑捉reducer里面的异常吧...
计数器有自定义计数器和内置计数器
静态计数器和动态计数器,前者用枚举,更安全一些,后者直接用字符串,有时为了显示方便,会创建一个properties属性文件。
发表评论
-
多表join的一个优化思路
2012-11-20 11:24 1469big table:streamed small table: ... -
好的网站
2012-09-20 22:17 7911. http://www.cnblogs.com/luche ... -
Hadoop 任务流程
2012-09-07 16:18 829简单的来说分为四个阶段:InputFormat/MapTask ... -
Hadoop关于最大map reducer数目
2012-08-14 20:53 987mapred-site.xml文件: <prop ... -
java.io.IOException:Typemismatch in key from map:expected org.apache.hadoop.io
2012-08-14 20:53 1458解决办法: jo ... -
HDFS 输入文件避免切分
2012-08-14 20:52 1123自定义InputFormat的子类,并把重载方法 ... -
Hadoop 开启debug信息
2012-08-14 20:51 4000运行hadoop程序时,有时候你会使用一些System. ... -
Hadoop 关于0.95/1.75 * (number of nodes)误解
2012-08-14 20:51 985reduce任务槽,即集群能够同时运行的redu ... -
MapReduce ReadingList
2012-08-09 12:22 7021. http://www.aicit.org/jcit/gl ... -
"hadoop fs 和hadoop dfs的区别"
2012-05-30 15:27 1935粗略的讲,fs是个比较抽象的层面,在分布式环境中,fs就是df ... -
Hadoop 自动清除日志
2012-05-29 18:02 948hadoop集群跑了很多的任务后 在hadoop.log ... -
DistributedCache FileNotFoundException
2012-05-26 18:02 1000此时注意两种文件路径表示形式,一个在HDFS中。一一个是本地文 ... -
Cygwin 不支持native lib 不支持使用native lib 提供的压缩
2012-05-25 13:33 1150弄了一个上午hadoop的压缩,一直报错NullPointer ... -
Hadoop 在Window下搭建 守护进程启动问题
2012-05-23 15:27 824hadoop version “0.20.2” java ... -
Cygwin ssh Connection closed by ::1
2012-05-17 21:09 1145在Win7下Cygwin中,使用sshlocalhost命令, ... -
Eclipse:Run on Hadoop 没有反应
2012-05-10 20:11 901hadoop-0.20.2下自带的eclise插件没有用,需要 ... -
Hadoop SequcenceFile 处理多个小文件
2012-04-29 11:04 3889利用sequenceFile打包多个小文件,MapFile是s ... -
MapReduce : 新版API 自定义InputFormat 把整个文件作为一条记录处理
2012-04-10 21:47 2294自定义InputFormat 新版API 把真个文件当成 ... -
MapReduce : Combiner的使用(以平均数为例) 并结合in-mapper design pattern 实例
2012-04-10 18:51 4340没有使用Combiner 和 in-mapper des ... -
Hadoop NameNode backup
2012-03-24 18:12 858NameNode: <property> ...
相关推荐
开发人员可以自定义计数器组,并在Mapper或Reducer中增加计数器实例来跟踪特定的事件或指标。例如,可以创建一个计数器来追踪处理的行数,或者另一个计数器来记录遇到的错误。这些计数器的值可以在JobTracker或YARN...
这个项目可能包含一个或多个示例,展示了如何在Mapper和Reducer中创建和更新自定义计数器,以便监控任务的执行情况。 首先,我们需要了解Hadoop MapReduce的基本工作流程。MapReduce将大数据处理任务拆分为两个主要...
计数器分为两类:Hadoop内置的计数器和自定义计数器。 内置计数器主要由Hadoop框架提供,例如Map任务和Reduce任务的数量、输入和输出的数据量等。这些计数器在MapReduce作业的执行过程中自动更新,并在日志中打印...
而自定义计数器则是由开发者在编写MapReduce程序时设定的,用以统计用户自定义事件的发生次数,比如无效记录的计数、记录某些特殊情况的发生等。计数器的存在使得开发者可以进行质量控制、应用级别的统计和问题定位...
在这个实验中,可能会使用自定义计数器来记录不同年份的气温记录数量,或者处理的行数等,以便于监控和分析程序的运行情况。 3. **MapReduce参数传递**:在配置MapReduce作业时,我们可能需要设置一些特定的参数,...
Hadoop为每个作业维护了一系列内置计数器,同时也支持用户自定义计数器。 ##### 内置计数器分类 - **任务计数器**:用于收集任务执行过程中的信息,如读取记录的数量等。 - **作业计数器**:由ResourceManager维护...
- **计数器**:提供自动计数器和用户自定义计数器,用于统计任务执行情况。 - **任务分割**:自动将大任务拆分成小任务,以便并行处理。 #### 管理功能 - **任务监控**:提供了可视化界面来监控任务执行状态。 - **...
用户自定义函数 过滤UDF 计算UDF 加载UDF 数据处理操作 加载和存储数据 过滤数据 分组与连接数据 对数据进行排序 组合和分割数据 Pig实战 并行处理 参数代换 第12章 Hive 1.1 安装Hive ...
用户自定义函数 过滤UDF 计算UDF 加载UDF 数据处理操作 加载和存储数据 过滤数据 分组与连接数据 对数据进行排序 组合和分割数据 Pig实战 并行处理 参数代换 第12章 Hive 1.1 安装Hive 1.1.1 Hive外壳环境 1.2 示例 ...
Hadoop 培训课程(4)MapReduce_2 标准和自定义计数器* Combiner和Partitioner编程** 自定义排序和分组编程** 常见的MapReduce算法** ---------------------------加深拓展---------------------- 常见大数据处理方法*
例如,Hadoop MapReduce框架中,开发者可以定义自定义的计数器来记录处理过程中的关键指标,这有助于分析任务性能和调试。Apache Spark等流处理系统也有类似的概念,允许用户创建和使用计数器来跟踪实时处理的数据量...
高级MapReduce技术包括自定义输入/输出格式、优化数据分区、使用组合器减少网络传输、实现计数器监控程序性能、利用缓存提高效率等。通过这些高级技术,可以更灵活地控制数据流和计算过程,提高处理效率。 ### 管理...
- **计数器**:解释了计数器在MapReduce中的作用,以及如何使用它们来监控作业的状态。 - **排序**:讨论了如何在MapReduce中实现排序操作。 - **联接**:介绍了MapReduce中实现数据联接的方法。 - **次要数据的分布...
- **Counters**:Counters 用于统计作业过程中的各种计数器信息,如处理的记录数量等。 - **DistributedCache**:DistributedCache 可以在作业运行时将一些辅助文件分发到各个 TaskTracker 上,便于 Mapper 或 ...
- **计数器**:用于收集作业运行期间的统计信息。 - **排序**:自定义排序规则,以满足特定需求。 - **联接**:处理来自多个数据源的信息。 - **次要数据的分布**:解决数据分布不均的问题。 - **类库**:提供了一...
这个条目可能是指用户可以运行的任何自定义类,通常用于扩展Hadoop的功能。 **命令格式**: ``` hadoop CLASSNAME [ARGUMENTS...] ``` **示例**: ``` hadoop ...
- **高级接口**:允许用户自定义更多的功能,如JobConf用于获取作业配置、Counter允许用户定义计数器等。 #### 七、HCE实例——Word Count 以Word Count为例,展示了如何使用HCE进行MapReduce任务的编写和执行。...
- **输入格式和输出格式**:自定义数据输入和输出的类。 - **计数器**:跟踪MapReduce任务的统计信息。 - **排序技术**:如归并排序,用于MapReduce中的数据排序。 - **连接**:处理不同数据集的连接操作。 - **...