embulk-executor-mapreduce 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ac810376cbc4895b8745c82dcd642ad8302bf4f
4
- data.tar.gz: 34b4f9a372be43b2915878b35954d75c25f7e8d8
3
+ metadata.gz: d683908af5b1f5e06ea035f9ecd4e7a89dbd4eab
4
+ data.tar.gz: f8a5a7db822f6241a40211dd1782e4fda83df073
5
5
  SHA512:
6
- metadata.gz: 96fd33f8766a7510776f8253702c04291e675ea62c6ed05cca05958c905383770afc63d4056df1aaa8bac8be4d0175ba5dd4ada150d86a31b6375e2d1a7c222f
7
- data.tar.gz: 01c46e09dd99360ce835ba419819da22d2a711b8a4cebf47382cb19092730e1608f76ae80bf79f498cc363fdbda0f0fd1fc4932a592e76f0b264b7b1e055d7a4
6
+ metadata.gz: 48b955f8b5a70864dd745347079cc83545fdb6953091812917beeb28e6aa9f66726c68e8b85b0aa3c8da40f419fc0b1efa78aab90bd899e42bb4c1a0c14edaae
7
+ data.tar.gz: 99199b98f4f56e2d5d74c7f12be41b19bd31aa3f496144a940b16c6c53abf3980c181ae186f40ba3bf307106abb53dc00683c54157ea000652d24d66cff12cd5
@@ -17,6 +17,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
17
17
  import org.apache.hadoop.mapreduce.TaskAttemptID;
18
18
  import org.embulk.config.ModelManager;
19
19
  import org.embulk.config.TaskReport;
20
+ import org.embulk.config.UserDataExceptions;
20
21
 
21
22
  public class AttemptState
22
23
  {
@@ -24,6 +25,7 @@ public class AttemptState
24
25
  private final Optional<Integer> inputTaskIndex;
25
26
  private final Optional<Integer> outputTaskIndex;
26
27
  private Optional<String> exception;
28
+ private boolean userDataException;
27
29
  private Optional<TaskReport> inputTaskReport;
28
30
  private Optional<TaskReport> outputTaskReport;
29
31
 
@@ -40,11 +42,13 @@ public class AttemptState
40
42
  @JsonProperty("inputTaskIndex") Optional<Integer> inputTaskIndex,
41
43
  @JsonProperty("outputTaskIndex") Optional<Integer> outputTaskIndex,
42
44
  @JsonProperty("exception") Optional<String> exception,
45
+ @JsonProperty("userDataException") boolean userDataException,
43
46
  @JsonProperty("inputTaskReport") Optional<TaskReport> inputTaskReport,
44
47
  @JsonProperty("outputTaskReport") Optional<TaskReport> outputTaskReport)
45
48
  {
46
49
  this(TaskAttemptID.forName(attemptId),
47
- inputTaskIndex, outputTaskIndex, exception,
50
+ inputTaskIndex, outputTaskIndex,
51
+ exception, userDataException,
48
52
  inputTaskReport, outputTaskReport);
49
53
  }
50
54
 
@@ -53,6 +57,7 @@ public class AttemptState
53
57
  Optional<Integer> inputTaskIndex,
54
58
  Optional<Integer> outputTaskIndex,
55
59
  Optional<String> exception,
60
+ boolean userDataException,
56
61
  Optional<TaskReport> inputTaskReport,
57
62
  Optional<TaskReport> outputTaskReport)
58
63
  {
@@ -60,6 +65,7 @@ public class AttemptState
60
65
  this.inputTaskIndex = inputTaskIndex;
61
66
  this.outputTaskIndex = outputTaskIndex;
62
67
  this.exception = exception;
68
+ this.userDataException = userDataException;
63
69
  this.inputTaskReport = inputTaskReport;
64
70
  this.outputTaskReport = outputTaskReport;
65
71
  }
@@ -97,13 +103,16 @@ public class AttemptState
97
103
  } catch (UnsupportedEncodingException ex) {
98
104
  throw new RuntimeException(ex);
99
105
  }
100
- setException(new String(os.toByteArray(), StandardCharsets.UTF_8));
106
+ setException(
107
+ new String(os.toByteArray(), StandardCharsets.UTF_8),
108
+ UserDataExceptions.isUserDataException(exception));
101
109
  }
102
110
 
103
111
  @JsonIgnore
104
- public void setException(String exception)
112
+ public void setException(String exception, boolean userDataException)
105
113
  {
106
114
  this.exception = Optional.of(exception);
115
+ this.userDataException = userDataException;
107
116
  }
108
117
 
109
118
  @JsonProperty("exception")
@@ -112,6 +121,12 @@ public class AttemptState
112
121
  return exception;
113
122
  }
114
123
 
124
+ @JsonProperty("userDataException")
125
+ public boolean isUserDataException()
126
+ {
127
+ return userDataException;
128
+ }
129
+
115
130
  @JsonProperty("inputTaskReport")
116
131
  public Optional<TaskReport> getInputTaskReport()
117
132
  {
@@ -409,7 +409,13 @@ public class MapReduceExecutor
409
409
  boolean committed = taskReport.isPresent();
410
410
  if (attempt.getException().isPresent()) {
411
411
  if (!state.isCommitted()) {
412
- state.setException(new RemoteTaskFailedException(attempt.getException().get()));
412
+ Exception remoteException;
413
+ if (attempt.isUserDataException()) {
414
+ remoteException = new RemoteTaskFailedDataException(attempt.getException().get());
415
+ } else {
416
+ remoteException = new RemoteTaskFailedException(attempt.getException().get());
417
+ }
418
+ state.setException(remoteException);
413
419
  }
414
420
  }
415
421
  if (taskReport.isPresent()) {
@@ -0,0 +1,12 @@
1
+ package org.embulk.executor.mapreduce;
2
+
3
+ import org.embulk.spi.DataException;
4
+
5
+ public class RemoteTaskFailedDataException
6
+ extends DataException
7
+ {
8
+ public RemoteTaskFailedDataException(String message)
9
+ {
10
+ super(message);
11
+ }
12
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-executor-mapreduce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-26 00:00:00.000000000 Z
11
+ date: 2015-10-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Executes tasks on Hadoop.
14
14
  email:
@@ -35,6 +35,7 @@ files:
35
35
  - src/main/java/org/embulk/executor/mapreduce/Partitioner.java
36
36
  - src/main/java/org/embulk/executor/mapreduce/Partitioning.java
37
37
  - src/main/java/org/embulk/executor/mapreduce/PluginArchive.java
38
+ - src/main/java/org/embulk/executor/mapreduce/RemoteTaskFailedDataException.java
38
39
  - src/main/java/org/embulk/executor/mapreduce/RemoteTaskFailedException.java
39
40
  - src/main/java/org/embulk/executor/mapreduce/SetContextClassLoader.java
40
41
  - src/main/java/org/embulk/executor/mapreduce/TimestampPartitioning.java
@@ -61,7 +62,7 @@ files:
61
62
  - classpath/curator-client-2.6.0.jar
62
63
  - classpath/curator-framework-2.6.0.jar
63
64
  - classpath/curator-recipes-2.6.0.jar
64
- - classpath/embulk-executor-mapreduce-0.2.1.jar
65
+ - classpath/embulk-executor-mapreduce-0.2.2.jar
65
66
  - classpath/gson-2.2.4.jar
66
67
  - classpath/hadoop-annotations-2.6.0.jar
67
68
  - classpath/hadoop-auth-2.6.0.jar