-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathConnection.java
More file actions
168 lines (143 loc) · 6.25 KB
/
Connection.java
File metadata and controls
168 lines (143 loc) · 6.25 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package com;
import java.util.List;
import java.util.ResourceBundle;
import org.apache.sqoop.client.SqoopClient;
import org.apache.sqoop.model.*;
import org.apache.sqoop.submission.counter.Counter;
import org.apache.sqoop.submission.counter.CounterGroup;
import org.apache.sqoop.submission.counter.Counters;
import org.apache.sqoop.validation.*;
public class Connection {
public static String url = "http://10.1.9.91:12000/sqoop/";
public static SqoopClient client = new SqoopClient(url);
public static Long connection(){
MConnection newCon = client.newConnection(1);
// MConnection newCon = client.getConnection(1115);
//Get connection and framework forms. Set name for connection
MConnectionForms conForms = newCon.getConnectorPart();
MConnectionForms frameworkForms = newCon.getFrameworkPart();
newCon.setName("JAVA_API_TEST");
//Set connection forms values
conForms.getStringInput("connection.connectionString").setValue("jdbc:mysql://10.1.30.3:3306/Sqoop_test");
conForms.getStringInput("connection.jdbcDriver").setValue("com.mysql.jdbc.Driver");
conForms.getStringInput("connection.username").setValue("root");
conForms.getStringInput("connection.password").setValue("root");
frameworkForms.getIntegerInput("security.maxConnections").setValue(0);
Status status = client.createConnection(newCon);
// Status status = client.updateConnection(newCon);
if(status.canProceed()) {
System.out.println("Created. New Connection ID : " +newCon.getPersistenceId());
} else {
System.out.println("Check for status and forms error ");
}
MJob newjob = client.newJob(newCon.getPersistenceId(), org.apache.sqoop.model.MJob.Type.EXPORT);
// MJob newjob = client.getJob(jid);
MJobForms connectorForm = newjob.getConnectorPart();
MJobForms frameworkForm = newjob.getFrameworkPart();
newjob.setName("export_test");
//Database configuration
// connectorForm.getStringInput("table.schemaName").setValue("");
//Input either table name or sql
connectorForm.getStringInput("table.tableName").setValue("export_data_chinese");
// connectorForm.getStringInput("table.sql").setValue("select id,name from table where ${CONDITIONS}");
connectorForm.getStringInput("table.columns").setValue("number,chinese,double_number");
//Input configurations
frameworkForm.getStringInput("input.inputDirectory").setValue("/user/zpl_test_export/test_timestamp.dat");
//Job resources
// frameworkForm.getIntegerInput("throttling.extractors").setValue(1);
// frameworkForm.getIntegerInput("throttling.loaders").setValue(1);
Status status_2 = client.createJob(newjob);
// Status status_2 = client.updateJob(newjob);
if(status_2.canProceed()) {
System.out.println("New Job ID: "+ newjob.getPersistenceId());
} else {
System.out.println("Check for status and forms error ");
}
//Print errors or warnings
printMessage(newjob.getConnectorPart().getForms());
printMessage(newjob.getFrameworkPart().getForms());
return newjob.getPersistenceId();
}
private static void printMessage(List<MForm> formList) {
for(MForm form : formList) {
List<MInput<?>> inputlist = form.getInputs();
if (form.getValidationMessage() != null) {
System.out.println("Form message: " + form.getValidationMessage());
}
for (MInput<?> minput : inputlist) {
if (minput.getValidationStatus() == Status.ACCEPTABLE) {
System.out.println("Warning:" + minput.getValidationMessage());
} else if (minput.getValidationStatus() == Status.UNACCEPTABLE) {
System.out.println("Error:" + minput.getValidationMessage());
}
}
}
}
public static void submission(Long jid){
MSubmission submission = client.startSubmission(jid);
System.out.println("Status : " + submission.getStatus());
if(submission.getStatus().isRunning() && submission.getProgress() != -1) {
System.out.println("Progress : " + String.format("%.2f %%", submission.getProgress() * 100));
}
System.out.println("Hadoop job id :" + submission.getExternalId());
System.out.println("Job link : " + submission.getExternalLink());
Counters counters = submission.getCounters();
if(counters != null) {
System.out.println("Counters:");
for(CounterGroup group : counters) {
System.out.print("\t");
System.out.println(group.getName());
for(Counter counter : group) {
System.out.print("\t\t");
System.out.print(counter.getName());
System.out.print(": ");
System.out.println(counter.getValue());
}
}
}
if(submission.getExceptionInfo() != null) {
System.out.println("Exception info : " +submission.getExceptionInfo());
}
}
public static void checkstatus(Long jid){
MSubmission submission = client.getSubmissionStatus(jid);
if(submission.getStatus().isRunning() && submission.getProgress() != -1) {
System.out.println("Progress : " + String.format("%.2f %%", submission.getProgress() * 100));
}
}
public static void stopmission( Long jid ){
client.stopSubmission(jid);
}
public static void Connection_describe(Long cid){
//Use getJob(jid) for describing job.
//While printing connection forms, pass connector id to getResourceBundle(cid).
describe(client.getConnection(cid).getConnectorPart().getForms(), client.getResourceBundle(1));
describe(client.getConnection(cid).getFrameworkPart().getForms(), client.getFrameworkResourceBundle());
}
public static void Job_describe(Long jid){
//Use getJob(jid) for describing job.
//While printing connection forms, pass connector id to getResourceBundle(cid).
describe(client.getJob(jid).getConnectorPart().getForms(), client.getResourceBundle(1));
describe(client.getJob(jid).getFrameworkPart().getForms(), client.getFrameworkResourceBundle());
}
private static void describe(List<MForm> forms, ResourceBundle resource) {
for (MForm mf : forms) {
System.out.println(resource.getString(mf.getLabelKey())+":");
List<MInput<?>> mis = mf.getInputs();
for (MInput<?> mi : mis) {
System.out.println(resource.getString(mi.getLabelKey()) + " : " + mi.getValue());
}
System.out.println();
}
}
public static void main(String[] args) {
// Long jid = connection();
// Long jid = 13l;
// Long cid = 1609l;
// submission(jid);
// checkstatus(jid);
// stopmission(jid);
// Connection_describe(cid);
// Job_describe(jid);
}
}