Project

General

Profile

1
<workflow-app xmlns="uri:oozie:workflow:0.3" name="line-by-line-copier">
2
    <start to="producer"/>
3
    <action name="producer">
4
        <java>
5
            <job-tracker>${jobTracker}</job-tracker>
6
            <name-node>${nameNode}</name-node>
7
			<!-- The data generated by this node is deleted in this section -->
8
			<prepare>
9
				<delete path="${nameNode}${workingDir}/producer" />
10
				<mkdir path="${nameNode}${workingDir}/producer" />
11
			</prepare>
12
            <configuration>
13
                <property>
14
                    <name>mapred.job.queue.name</name>
15
                    <value>${queueName}</value>
16
                </property>
17
            </configuration>
18
            <main-class>eu.dnetlib.iis.core.java.ProcessWrapper</main-class>
19
            <arg>eu.dnetlib.iis.core.examples.protobuf.java.TextDataProducer</arg>
20
            <!-- All input and output ports have to be bound to paths in 
21
            HDFS, working directory has to be specified as well -->
22
            <arg>-Operson=${workingDir}/producer/person.csv</arg>
23
            <arg>-Odocument=${workingDir}/producer/doc.csv</arg>
24
        </java>
25
        <ok to="copier"/>
26
        <error to="fail"/>
27
    </action>
28
    <action name="copier">
29
        <java>
30
            <job-tracker>${jobTracker}</job-tracker>
31
            <name-node>${nameNode}</name-node>
32
			<!-- The data generated by this node is deleted in this section -->
33
			<prepare>
34
				<delete path="${nameNode}${workingDir}/copier" />
35
				<mkdir path="${nameNode}${workingDir}/copier" />
36
			</prepare>
37
            <configuration>
38
                <property>
39
                    <name>mapred.job.queue.name</name>
40
                    <value>${queueName}</value>
41
                </property>
42
            </configuration>
43
            <main-class>eu.dnetlib.iis.core.java.ProcessWrapper</main-class>
44
            <arg>eu.dnetlib.iis.core.examples.protobuf.java.LineByLineCopier</arg>
45
            <!-- All input and output ports have to be bound to paths in 
46
            HDFS, working directory has to be specified as well -->
47
            <arg>-Iperson=${workingDir}/producer/person.csv</arg>
48
            <arg>-Idocument=${workingDir}/producer/doc.csv</arg>
49
            <arg>-Operson_copy=${workingDir}/copier/person_copy.csv</arg>
50
            <arg>-Odocument_copy=${workingDir}/copier/doc_copy.csv</arg>
51
        </java>
52
        <ok to="end"/>
53
        <error to="fail"/>
54
    </action>
55
    <kill name="fail">
56
        <message>Unfortunately, the process failed -- error message: [${wf:errorMessage(wf:lastErrorNode())}]</message>
57
    </kill>
58
    <end name="end"/>
59
</workflow-app>
    (1-1/1)