Project

General

Profile

1
<workflow-app name="test-core_examples_javamapreduce_stats"
2
	xmlns="uri:oozie:workflow:0.4">
3
	<!-- map reduce job that exports hbase data and prepares them for import 
4
		to the relation database used for statistics generation -->
5

    
6
	<global>
7
		<job-tracker>${jobTracker}</job-tracker>
8
		<name-node>${nameNode}</name-node>
9
		<configuration>
10
			<property>
11
				<name>mapred.job.queue.name</name>
12
				<value>${queueName}</value>
13
			</property>
14
			<property>
15
				<name>oozie.sqoop.log.level</name>
16
				<value>DEBUG</value>
17
			</property>
18
		</configuration>
19
	</global>
20
	<start to='get-scanner' />
21
	<action name='get-scanner'>
22
		<java>
23
			<main-class>eu.dnetlib.iis.core.workflows.stats.HbaseScannerGenerator
24
			</main-class>
25
			<!-- column families: -->
26

    
27
			<arg>
28
				-f datasource
29
				<!-- , datasourceOrganization_provision_provides ,organization, -->
30
				<!-- projectOrganization_participation_isParticipant, -->
31
				<!-- project -->
32
				<!-- ,projectOrganization_participation_hasParticipant -->
33
				<!-- , -->
34
				<!-- result -->
35
				<!-- , resultProject_outcome_produces, -->
36
				<!-- personResult_authorship_hasAuthor,resultResult_publicationDataset_isRelatedTo -->
37
			</arg>
38

    
39
			<capture-output />
40
		</java>
41
		<ok to="mr_export" />
42
		<error to="fail" />
43
	</action>
44
	<action name="mr_export">
45
		<map-reduce>
46

    
47
			<prepare>
48
				<delete path="${nameNode}${Stats_output_Path}" />
49

    
50
			</prepare>
51
			<configuration>
52
				<property>
53
					<name>hbase.mapreduce.scan</name>
54
					<value>${wf:actionData('get-scanner')['scan']}</value>
55
				</property>
56
				<property>
57
					<name>hbase.rootdir</name>
58
					<value>hdfs://nmis-hadoop-cluster/hbase</value>
59
				</property>
60

    
61
				<property>
62
					<name>hbase.security.authentication</name>
63
					<value>simple</value>
64
				</property>
65
				<!-- ZOOKEEPER -->
66

    
67
				<property>
68
					<name>hbase.zookeeper.quorum</name>
69
					<value>
70
						quorum1.t.hadoop.research-infrastructures.eu,quorum2.t.hadoop.research-infrastructures.eu,quorum3.t.hadoop.research-infrastructures.eu,quorum4.t.hadoop.research-infrastructures.eu,jobtracker.t.hadoop.research-infrastructures.eu
71
					</value>
72
				</property>
73
				<property>
74
					<name>zookeeper.znode.rootserver</name>
75
					<value>root-region-server</value>
76
				</property>
77

    
78
				<property>
79
					<name>hbase.zookeeper.property.clientPort</name>
80
					<value>2182</value>
81
				</property>
82

    
83

    
84
				<!-- MR IO -->
85

    
86

    
87
				<property>
88
					<name>mapreduce.inputformat.class</name>
89
					<value>org.apache.hadoop.hbase.mapreduce.TableInputFormat</value>
90
				</property>
91

    
92
				<property>
93
					<name>mapred.mapoutput.key.class</name>
94
					<value>org.apache.hadoop.io.Text</value>
95
				</property>
96
				<property>
97
					<name>mapred.mapoutput.value.class</name>
98
					<value>org.apache.hadoop.hbase.io.ImmutableBytesWritable</value>
99
				</property>
100
				<property>
101
					<name>mapred.output.key.class</name>
102
					<value>org.apache.hadoop.io.Text</value>
103
				</property>
104
				<property>
105
					<name>mapred.output.value.class</name>
106
					<value>org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat
107
					</value>
108
				</property>
109

    
110
				<!-- ## This is required for new MapReduce API usage -->
111
				<property>
112
					<name>mapred.mapper.new-api</name>
113
					<value>true</value>
114
				</property>
115
				<property>
116
					<name>mapred.reducer.new-api</name>
117
					<value>true</value>
118
				</property>
119

    
120
				<!-- # Job-specific options -->
121
				<property>
122
					<name>dfs.blocksize</name>
123
					<value>32M</value>
124
				</property>
125
				<property>
126
					<name>mapred.output.compress</name>
127
					<value>false</value>
128
				</property>
129
				<property>
130
					<name>mapred.reduce.tasks.speculative.execution</name>
131
					<value>false</value>
132
				</property>
133
				<property>
134
					<name>mapred.reduce.tasks.speculative.execution</name>
135
					<value>false</value>
136
				</property>
137
				<property>
138
					<name>mapreduce.map.speculative</name>
139
					<value>false</value>
140
				</property>
141

    
142
				<!-- I/O FORMAT -->
143
				<!-- IMPORTANT: sets default delimeter used by text output writer. Required 
144
					to fix issue with traling tab added between id and value in multiple outputs -->
145
				<property>
146
					<name>mapred.textoutputformat.separator</name>
147
					<value>${Stats_delim_Character}</value>
148
				</property>
149
				<!-- ## Names of all output ports -->
150

    
151
				<property>
152
					<name>mapreduce.multipleoutputs</name>
153

    
154
					<value>${out1} ${out2} ${out3} ${out4} ${out5} ${out6} ${out7}
155
						${out8} ${out9} ${out10} ${out11} ${out12} ${out13} ${out14}
156
						${out15} ${out16} ${out17} ${out18} ${out19} ${out20} ${out21}
157
					</value>
158

    
159
				</property>
160
				<!-- datasource -->
161
				<property>
162
					<name>mapreduce.multipleoutputs.namedOutput.${out1}.key</name>
163
					<value>org.apache.hadoop.io.Text</value>
164
				</property>
165
				<property>
166
					<name>mapreduce.multipleoutputs.namedOutput.${out1}.value</name>
167
					<value>org.apache.hadoop.io.Text</value>
168
				</property>
169
				<property>
170
					<name>mapreduce.multipleoutputs.namedOutput.${out1}.format</name>
171
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
172
					</value>
173
				</property>
174
				<!-- datasourceLanguage -->
175
				<property>
176
					<name>mapreduce.multipleoutputs.namedOutput.${out2}.key</name>
177
					<value>org.apache.hadoop.io.Text</value>
178
				</property>
179
				<property>
180
					<name>mapreduce.multipleoutputs.namedOutput.${out2}.value</name>
181
					<value>org.apache.hadoop.io.Text</value>
182
				</property>
183
				<property>
184
					<name>mapreduce.multipleoutputs.namedOutput.${out2}.format</name>
185
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
186
					</value>
187
				</property>
188

    
189

    
190

    
191
				<!-- datasourceOrganization -->
192
				<property>
193
					<name>mapreduce.multipleoutputs.namedOutput.${out3}.key</name>
194
					<value>org.apache.hadoop.io.Text</value>
195
				</property>
196
				<property>
197
					<name>mapreduce.multipleoutputs.namedOutput.${out3}.value</name>
198
					<value>org.apache.hadoop.io.Text</value>
199
				</property>
200
				<property>
201
					<name>mapreduce.multipleoutputs.namedOutput.${out3}.format</name>
202
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
203
					</value>
204
				</property>
205

    
206
				<!-- datasourceTopic -->
207
				<property>
208
					<name>mapreduce.multipleoutputs.namedOutput.${out4}.key</name>
209
					<value>org.apache.hadoop.io.Text</value>
210
				</property>
211
				<property>
212
					<name>mapreduce.multipleoutputs.namedOutput.${out4}.value</name>
213
					<value>org.apache.hadoop.io.Text</value>
214
				</property>
215
				<property>
216
					<name>mapreduce.multipleoutputs.namedOutput.${out4}.format</name>
217
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
218
					</value>
219
				</property>
220

    
221
				<!-- resultDatasource -->
222
				<property>
223
					<name>mapreduce.multipleoutputs.namedOutput.${out5}.key</name>
224
					<value>org.apache.hadoop.io.Text</value>
225
				</property>
226
				<property>
227
					<name>mapreduce.multipleoutputs.namedOutput.${out5}.value</name>
228
					<value>org.apache.hadoop.io.Text</value>
229
				</property>
230
				<property>
231
					<name>mapreduce.multipleoutputs.namedOutput.${out5}.format</name>
232
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
233
					</value>
234
				</property>
235
				<!-- organization -->
236
				<property>
237
					<name>mapreduce.multipleoutputs.namedOutput.${out6}.key</name>
238
					<value>org.apache.hadoop.io.Text</value>
239
				</property>
240
				<property>
241
					<name>mapreduce.multipleoutputs.namedOutput.${out6}.value</name>
242
					<value>org.apache.hadoop.io.Text</value>
243
				</property>
244
				<property>
245
					<name>mapreduce.multipleoutputs.namedOutput.${out6}.format</name>
246
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
247
					</value>
248
				</property>
249

    
250
				<!-- projectOrganization -->
251
				<property>
252
					<name>mapreduce.multipleoutputs.namedOutput.${out7}.key</name>
253
					<value>org.apache.hadoop.io.Text</value>
254
				</property>
255
				<property>
256
					<name>mapreduce.multipleoutputs.namedOutput.${out7}.value</name>
257
					<value>org.apache.hadoop.io.Text</value>
258
				</property>
259
				<property>
260
					<name>mapreduce.multipleoutputs.namedOutput.${out7}.format</name>
261
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
262
					</value>
263
				</property>
264
				<!-- resultProject -->
265
				<property>
266
					<name>mapreduce.multipleoutputs.namedOutput.${out8}.key</name>
267
					<value>org.apache.hadoop.io.Text</value>
268
				</property>
269
				<property>
270
					<name>mapreduce.multipleoutputs.namedOutput.${out8}.value</name>
271
					<value>org.apache.hadoop.io.Text</value>
272
				</property>
273
				<property>
274
					<name>mapreduce.multipleoutputs.namedOutput.${out8}.format</name>
275
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
276
					</value>
277
				</property>
278

    
279
				<!-- project -->
280
				<property>
281
					<name>mapreduce.multipleoutputs.namedOutput.${out9}.key</name>
282
					<value>org.apache.hadoop.io.Text</value>
283
				</property>
284
				<property>
285
					<name>mapreduce.multipleoutputs.namedOutput.${out9}.value</name>
286
					<value>org.apache.hadoop.io.Text</value>
287
				</property>
288
				<property>
289
					<name>mapreduce.multipleoutputs.namedOutput.${out9}.format</name>
290
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
291
					</value>
292
				</property>
293

    
294
				<!-- resultConcept -->
295
				<property>
296
					<name>mapreduce.multipleoutputs.namedOutput.${out10}.key</name>
297
					<value>org.apache.hadoop.io.Text</value>
298
				</property>
299
				<property>
300
					<name>mapreduce.multipleoutputs.namedOutput.${out10}.value</name>
301
					<value>org.apache.hadoop.io.Text</value>
302
				</property>
303
				<property>
304
					<name>mapreduce.multipleoutputs.namedOutput.${out10}.format</name>
305
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
306
					</value>
307
				</property>
308

    
309
				<!-- resultClaim -->
310
				<property>
311
					<name>mapreduce.multipleoutputs.namedOutput.${out11}.key</name>
312
					<value>org.apache.hadoop.io.Text</value>
313
				</property>
314
				<property>
315
					<name>mapreduce.multipleoutputs.namedOutput.${out11}.value</name>
316
					<value>org.apache.hadoop.io.Text</value>
317
				</property>
318
				<property>
319
					<name>mapreduce.multipleoutputs.namedOutput.${out11}.format</name>
320
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
321
					</value>
322
				</property>
323

    
324
				<!-- resultClassification -->
325
				<property>
326
					<name>mapreduce.multipleoutputs.namedOutput.${out12}.key</name>
327
					<value>org.apache.hadoop.io.Text</value>
328
				</property>
329
				<property>
330
					<name>mapreduce.multipleoutputs.namedOutput.${out12}.value</name>
331
					<value>org.apache.hadoop.io.Text</value>
332
				</property>
333
				<property>
334
					<name>mapreduce.multipleoutputs.namedOutput.${out12}.format</name>
335
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
336
					</value>
337
				</property>
338

    
339
				<!-- resultLanguage -->
340
				<property>
341
					<name>mapreduce.multipleoutputs.namedOutput.${out13}.key</name>
342
					<value>org.apache.hadoop.io.Text</value>
343
				</property>
344
				<property>
345
					<name>mapreduce.multipleoutputs.namedOutput.${out13}.value</name>
346
					<value>org.apache.hadoop.io.Text</value>
347
				</property>
348
				<property>
349
					<name>mapreduce.multipleoutputs.namedOutput.${out13}.format</name>
350
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
351
					</value>
352
				</property>
353

    
354
				<!-- resultProject -->
355
				<property>
356
					<name>mapreduce.multipleoutputs.namedOutput.${out14}.key</name>
357
					<value>org.apache.hadoop.io.Text</value>
358
				</property>
359
				<property>
360
					<name>mapreduce.multipleoutputs.namedOutput.${out14}.value</name>
361
					<value>org.apache.hadoop.io.Text</value>
362
				</property>
363
				<property>
364
					<name>mapreduce.multipleoutputs.namedOutput.${out14}.format</name>
365
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
366
					</value>
367
				</property>
368
				<!-- resultResult -->
369
				<property>
370
					<name>mapreduce.multipleoutputs.namedOutput.${out15}.key</name>
371
					<value>org.apache.hadoop.io.Text</value>
372
				</property>
373
				<property>
374
					<name>mapreduce.multipleoutputs.namedOutput.${out15}.value</name>
375
					<value>org.apache.hadoop.io.Text</value>
376
				</property>
377
				<property>
378
					<name>mapreduce.multipleoutputs.namedOutput.${out15}.format</name>
379
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
380
					</value>
381
				</property>
382
				<!-- resultTopic -->
383
				<property>
384
					<name>mapreduce.multipleoutputs.namedOutput.${out16}.key</name>
385
					<value>org.apache.hadoop.io.Text</value>
386
				</property>
387
				<property>
388
					<name>mapreduce.multipleoutputs.namedOutput.${out16}.value</name>
389
					<value>org.apache.hadoop.io.Text</value>
390
				</property>
391
				<property>
392
					<name>mapreduce.multipleoutputs.namedOutput.${out16}.format</name>
393
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
394
					</value>
395
				</property>
396

    
397
				<!-- resultDatasource -->
398
				<property>
399
					<name>mapreduce.multipleoutputs.namedOutput.${out17}.key</name>
400
					<value>org.apache.hadoop.io.Text</value>
401
				</property>
402
				<property>
403
					<name>mapreduce.multipleoutputs.namedOutput.${out17}.value</name>
404
					<value>org.apache.hadoop.io.Text</value>
405
				</property>
406
				<property>
407
					<name>mapreduce.multipleoutputs.namedOutput.${out17}.format</name>
408
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
409
					</value>
410
				</property>
411

    
412

    
413

    
414
				<!-- result -->
415
				<property>
416
					<name>mapreduce.multipleoutputs.namedOutput.${out18}.key</name>
417
					<value>org.apache.hadoop.io.Text</value>
418
				</property>
419
				<property>
420
					<name>mapreduce.multipleoutputs.namedOutput.${out18}.value</name>
421
					<value>org.apache.hadoop.io.Text</value>
422
				</property>
423
				<property>
424
					<name>mapreduce.multipleoutputs.namedOutput.${out18}.format</name>
425
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
426
					</value>
427
				</property>
428

    
429
				<!-- claim -->
430
				<property>
431
					<name>mapreduce.multipleoutputs.namedOutput.${out19}.key</name>
432
					<value>org.apache.hadoop.io.Text</value>
433
				</property>
434
				<property>
435
					<name>mapreduce.multipleoutputs.namedOutput.${out19}.value</name>
436
					<value>org.apache.hadoop.io.Text</value>
437
				</property>
438
				<property>
439
					<name>mapreduce.multipleoutputs.namedOutput.${out19}.format</name>
440
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
441
					</value>
442
				</property>
443
				<!-- cncept -->
444
				<property>
445
					<name>mapreduce.multipleoutputs.namedOutput.${out20}.key</name>
446
					<value>org.apache.hadoop.io.Text</value>
447
				</property>
448
				<property>
449
					<name>mapreduce.multipleoutputs.namedOutput.${out20}.value</name>
450
					<value>org.apache.hadoop.io.Text</value>
451
				</property>
452
				<property>
453
					<name>mapreduce.multipleoutputs.namedOutput.${out20}.format</name>
454
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
455
					</value>
456
				</property>
457

    
458
				<!-- category -->
459
				<property>
460
					<name>mapreduce.multipleoutputs.namedOutput.${out21}.key</name>
461
					<value>org.apache.hadoop.io.Text</value>
462
				</property>
463
				<property>
464
					<name>mapreduce.multipleoutputs.namedOutput.${out21}.value</name>
465
					<value>org.apache.hadoop.io.Text</value>
466
				</property>
467
				<property>
468
					<name>mapreduce.multipleoutputs.namedOutput.${out21}.format</name>
469
					<value>org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
470
					</value>
471
				</property>
472
				<!-- ## Classes of mapper and reducer -->
473

    
474
				<property>
475
					<name>mapreduce.map.class</name>
476
					<value>eu.dnetlib.data.mapreduce.hbase.statsExport.StatsMapper
477
					</value>
478
				</property>
479
				<property>
480
					<name>mapreduce.reduce.class</name>
481
					<value>eu.dnetlib.data.mapreduce.hbase.statsExport.StatsReducer
482
					</value>
483
				</property>
484
				<property>
485
					<name>io.serializations</name>
486
					<value>org.apache.hadoop.io.serializer.WritableSerialization
487
					</value>
488
				</property>
489
				<!-- ## Custom config -->
490

    
491
				<!--delim character used to seperate fields in hdfs dump files <property> -->
492
				<property>
493
					<name>stats.delim</name>
494
					<value>${Stats_delim_Character}</value>
495
				</property>
496
				<!--default string for Null String Values -->
497
				<property>
498
					<name>stats.nullString</name>
499
					<value>${Stats_null_String_Field}</value>
500
				</property>
501
				<!--default string for Null Numeric Values -->
502
				<property>
503
					<name>stats.nullNum</name>
504
					<value>${Stats_null_Numeric_Field}</value>
505
				</property>
506
				<!--source hbase table -->
507
				<property>
508
					<name>hbase.mapreduce.inputtable</name>
509
					<value>${Stats_Hbase_Source_Table}</value>
510
				</property>
511
				<property>
512
					<!-- mapping of protos entities to tables in the relDB -->
513
					<name>stats.dbTablesMap</name>
514
					<value>${Stats_db_table_map}</value>
515
				</property>
516
				<property>
517
					<name>stats.newline</name>
518
					<value>${Stats_newline_Character}</value>
519
				</property>
520
            	<!-- This directory does not correspond to a data store. In fact, this 
521
					directory only contains multiple data stores. It has to be set to the name 
522
					of the workflow node. -->
523
				<property>
524
					<name>mapred.output.dir</name>
525
					<value>${Stats_output_Path}</value>
526
				</property>
527
				<property>
528
					<name>stats.indexConf</name>
529
					<value>${Stats_indexConf}</value>
530
				</property>
531
				<!-- ## Workflow node parameters -->
532
				<property>
533
					<name>mapred.reduce.tasks</name>
534
					<value>${numReducers}</value>
535
				</property>
536
			</configuration>
537
		</map-reduce>
538
		<ok to="sqoopImport" />
539
		<error to="fail" />
540
	</action>
541

    
542
	<action name="prepareDatabase">
543
		<java>
544

    
545
			<prepare>
546
			</prepare>
547
			<configuration>
548
				<property>
549
					<name>mapred.job.queue.name</name>
550
					<value>${queueName}</value>
551
				</property>
552
			</configuration>
553

    
554
			<main-class>eu.dnetlib.iis.core.java.ProcessWrapper</main-class>
555
			<arg>-SworkingDir=${workingDir}</arg>
556
			<arg>eu.dnetlib.iis.core.workflows.stats.DBInitWrapper</arg>
557

    
558
			<arg>-PStats_db_Url=${Stats_db_Url}</arg>
559
			<arg>-PStats_db_User=${Stats_db_User}</arg>
560
			<arg>-PStats_db_Pass=${Stats_db_Pass}</arg>
561
			<arg>-PStats_db_Driver=${Stats_db_Driver}</arg>
562

    
563
		</java>
564
		<ok to="sqoopImport" />
565
		<error to="fail" />
566
	</action>
567

    
568
	<action name="sqoopImport">
569
		<java>
570
			<prepare>
571
			</prepare>
572
			<configuration>
573
				<property>
574
					<name>mapred.job.queue.name</name>
575
					<value>${queueName}</value>
576
				</property>
577

    
578
				<property>
579
					<name>oozie.sqoop.log.level</name>
580
					<value>DEBUG</value>
581
				</property>
582

    
583
			</configuration>
584

    
585
			<main-class>eu.dnetlib.iis.core.java.ProcessWrapper</main-class>
586
			<arg>-SworkingDir=${workingDir}</arg>
587
			<arg>eu.dnetlib.iis.core.workflows.stats.SqoopWrapper</arg>
588

    
589
			<arg>-PStats_db_Url=${Stats_db_Url}</arg>
590
			<arg>-PStats_db_User=${Stats_db_User}</arg>
591
			<arg>-PStats_db_Pass=${Stats_db_Pass}</arg>
592

    
593
			<arg>-PStats_output_Path=${Stats_output_Path}</arg>
594
			<arg>-PStats_sqoop_RecsPerStatement=${Stats_sqoop_RecsPerStatement}
595
			</arg>
596
			<arg>-PStats_sqoop_ReducersCount=${Stats_sqoop_ReducersCount}</arg>
597
			<arg>-PStats_sqoop_StatementPerTrans=${Stats_sqoop_StatementPerTrans}
598
			</arg>
599
			<arg>-PStats_delim_Character=${Stats_delim_Character}</arg>
600
			<arg>-PStats_newline_Character=${Stats_newline_Character}</arg>
601
			<arg>-PStats_db_table_map=${Stats_db_table_map}</arg>
602

    
603

    
604

    
605

    
606
		</java>
607
		<ok to="end" />
608
		<error to="fail" />
609
	</action>
610

    
611
	<action name="finalizeDatabase">
612
		<java>
613

    
614
			<prepare>
615
			</prepare>
616
			<configuration>
617
				<property>
618
					<name>mapred.job.queue.name</name>
619
					<value>${queueName}</value>
620
				</property>
621
			</configuration>
622

    
623
			<main-class>eu.dnetlib.iis.core.java.ProcessWrapper</main-class>
624
			<arg>-SworkingDir=${workingDir}</arg>
625
			<arg>eu.dnetlib.iis.core.workflows.stats.DBFinalizeWrapper</arg>
626
			<arg>-PStats_db_Url=${Stats_db_Url}</arg>
627
			<arg>-PStats_db_User=${Stats_db_User}</arg>
628
			<arg>-PStats_db_Pass=${Stats_db_Pass}</arg>
629
			<arg>-PStats_db_Driver=${Stats_db_Driver}</arg>
630
			<arg>-PStats_output_Path=${Stats_output_Path}</arg>
631
			<arg>-PStats_ContextResourceXML=${ContextResourceXML}</arg>
632

    
633
		</java>
634
		<ok to="end" />
635
		<error to="fail" />
636
	</action>
637
	<action name="sqoopDirectImport">
638
		<sqoop xmlns="uri:oozie:sqoop-action:0.2">
639
			<job-tracker>${jobTracker}</job-tracker>
640
			<name-node>${nameNode}</name-node>
641
			<prepare>
642
			</prepare>
643
			<configuration>
644
				<property>
645
					<name>mapred.job.queue.name</name>
646
					<value>${queueName}</value>
647
				</property>
648
				<property>
649
					<name>oozie.sqoop.log.level</name>
650
					<value>DEBUG</value>
651
				</property>
652
			</configuration>
653
			<command> export -Dsqoop.export.records.per.statement=1000
654
				-Dsqoop.statements.per.transaction==1000 --connect
655
				jdbc:postgresql://duffy.di.uoa.gr:5432/test_stats --export-dir
656
				/tmp/test_stats/datasource-r-00000 --table datasource --username
657
				sqoop --password sqoop --input-fields-terminated-by ! -m 4
658
			</command>
659

    
660
		</sqoop>
661
		<ok to="end" />
662
		<error to="fail" />
663
	</action>
664

    
665
	<kill name="fail">
666
		<message>
667
			Unfortunately, the process failed -- error message:
668
			[${wf:errorMessage(wf:lastErrorNode())}]
669
		</message>
670
	</kill>
671
	<end name="end" />
672
</workflow-app>
    (1-1/1)