hadoop0.20.X版本中对counter进行了改进,具体写法如下,mark一下
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
private final static Logger log = Logger.getLogger(TokenizerMapper.class);
private static Counter ct = null;
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
String name = itr.nextToken();
if("test".equals(name)){
ct = context.getCounter("TestFinder", "发现test");
ct.increment(1);
}
word.set(name);
context.write(word, one);
}
}
}
直接定义即可,如无此counter,hadoop会自动添加此counter.
分享到:
相关推荐
在Hadoop MapReduce框架中,计数器(Counter)是一个重要的功能,用于在分布式计算过程中跟踪和统计各种指标。在“javamap源码-HADOOP-COUNTER-SOURCE-CODE”项目中,我们可以深入理解如何在Java程序中利用Hadoop的...
总的来说,"secondarysort.zip"项目是一个深入理解Hadoop MapReduce排序机制、自定义Counter和配置管理的实例。通过学习这个项目,开发者可以掌握如何在实际问题中灵活应用Hadoop MapReduce,提升大数据处理的效率和...
- **序列化机制**:为了满足Hadoop MapReduce和HDFS的通信需求,Hadoop采用了自定义的序列化机制而不是Java自带的序列化方式。这一机制主要体现在`org.apache.hadoop.io`包中的各类可序列化对象,它们实现了`...
- **自定义序列化机制**:为了提高性能和灵活性,Hadoop并未使用Java自带的序列化机制,而是采用了自定义的序列化方案。 - **Writable接口**:定义了一系列可序列化对象,这些对象实现了`Writable`接口。 - **序列...
总结来说,Hadoop的序列化机制主要基于`Writable`接口,通过自定义的序列化和反序列化方法实现数据的转换。`ObjectWritable`作为通用的载体,适应了RPC通信中不同类型的对象传输。`WritableFactories`则是保证`...
Hadoop采用了自定义的序列化机制,而不是Java内置的序列化机制。这是因为内置的序列化机制效率较低,且不支持跨语言交互。因此,Hadoop在`org.apache.hadoop.io`包中定义了大量的可序列化对象,它们都实现了`...
例如,自定义的`MyWritable`类会实现`write`方法,将成员变量`counter`和`timestamp`写入`DataOutput`。 通过深入分析Hadoop的源码,我们可以理解其内部工作原理,优化性能,或者开发新的功能和扩展。这对于任何...
Hadoop采用了自定义的序列化方式而非Java的默认序列化机制。 - **Writable接口**:`org.apache.hadoop.io`包下的许多类实现了`Writable`接口,这使得它们能够在Hadoop的环境中进行序列化和反序列化。 - **示例代码**...
Hadoop并未采用Java内置的序列化机制,而是自定义了一套序列化系统,主要由org.apache.hadoop.io中的Writable接口实现。例如,一个实现了Writable接口的类MyWritable,其write方法会将counter和timestamp写入...
- **高级接口**:允许用户自定义更多的功能,如JobConf用于获取作业配置、Counter允许用户定义计数器等。 #### 七、HCE实例——Word Count 以Word Count为例,展示了如何使用HCE进行MapReduce任务的编写和执行。...
计数器分为两类:Hadoop内置的计数器和自定义计数器。 内置计数器主要由Hadoop框架提供,例如Map任务和Reduce任务的数量、输入和输出的数据量等。这些计数器在MapReduce作业的执行过程中自动更新,并在日志中打印...
可以使用Python的collections.Counter类来实现,将分词、词干提取和去停用词后的词汇列表作为输入,Counter会返回一个字典,键为词汇,值为对应的词频。 **5. 界面工具** 描述中提到的工具“WordFrequencyStat-i”...
在 Pig Latin 中,你可以定义一个自定义 UDF 来实现这个功能,如下所示: ```java public class URLDecode extends EvalFunc<String> { @Override public String exec(Tuple input) throws IOException { if ...
6. **Secondary Sort**:除了默认的按键排序,还可以自定义次级排序,使得具有相同键的值按照特定顺序进入Reducer。 7. **Reducer接口**:Reducer聚合Mapper的输出,通常用于汇总数据或执行聚合操作。Reduce任务的...
org.apache.hadoop.mapreduce.Counter count = context.getCounter("map中的值value", value.toString()); count.increment(1l); // 统计当前值出现的次数 for (String word : splited) { context.write(new ...
- 配置了Hadoop的相关依赖库,如`org.apache.hadoop.mapreduce.Job`、`org.apache.hadoop.io.Text`等。 - 定义了输入输出格式以及文件路径等配置信息。 #### 五、使用场景及扩展 1. **电子商务**:分析用户的...
主要分为堆内存(Heap)、方法区(Method Area)、虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)。堆内存用于存储对象实例,方法区存放类信息,虚拟机栈保存...