My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.google.appengine.demos.mapreduce;

import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.tools.mapreduce.AppEngineMapper;

import org.apache.hadoop.io.NullWritable;

import java.util.logging.Logger;

/**
* A sample AppEngine mapper.
*
*/
public class TestMapper extends AppEngineMapper<Key, Entity, NullWritable, NullWritable> {
private static final Logger log = Logger.getLogger(TestMapper.class.getName());

public TestMapper() {
}

@Override
public void taskSetup(Context context) {
log.warning("Doing per-task setup");
}

@Override
public void taskCleanup(Context context) {
log.warning("Doing per-task cleanup");
}

@Override
public void setup(Context context) {
log.warning("Doing per-worker setup");
}

@Override
public void cleanup(Context context) {
log.warning("Doing per-worker cleanup");
}

// This is a silly mapper that's intended to show some of the capabilities of the API.
@Override
public void map(Key key, Entity value, Context context) {
log.warning("Mapping key: " + key);
if (value.hasProperty("skub")) {
// Counts the number of jibbit and non-jibbit skub.
// These counts are aggregated and can be seen on the status page.
if (value.getProperty("skub").equals("Pro")) {
context.getCounter("Skub", "Pro").increment(1);
} else {
context.getCounter("Skub", "Anti").increment(1);
}
}
}
}

Change log

r207 by mike.aizatsky on Jul 15, 2011   Diff
Due to some problems this CL includes more
than one change:

- MapReduceServlet has got some protection
against taskqueue executed the same
  task more than once (yes, it can happen)
- Added some code which was not exported
before
- Lots of whitespace and author tag
changes due to some internal tool changes.


Go to: 
Project members, sign in to write a code review

Older revisions

r17 by frewstore on Jun 3, 2010   Diff
Add example code. Not hooked up to the
build system yet.
All revisions of this file

File info

Size: 2101 bytes, 71 lines
Powered by Google Project Hosting