page.query.parameter=${query}
page.query.parameter=${query_1}
@RestLiCollection(name = "joblauncher", namespace = "gobblin.rest")
public class JobLauncherResource extends CollectionResourceTemplate<String, JobLauncherInfo> {
private static final Logger LOGGER = LoggerFactory.getLogger(JobLauncherResource.class);
static HashMap<String, Properties> jobPropertyMap = new HashMap<String, Properties>();
// export GOBBLIN_JOB_CONFIG_DIR=/home/vickey/development/gobblin/gobblin-dist/job-config-bpu/wikipedia.pull
// http://localhost:8080/joblauncher?q=triggerjob&jobId=wikipedia&search=india&propfile=gobblin-standalone.properties
@Finder("triggerjob")
public List<JobLauncherInfo> search(@PagingContextParam PagingContextParam context,
@QueryParam("jobId") String jobId,
@QueryParam("propfile") String propertiesFile,
@QueryParam("fbToken") @Optional String fbToken,
@QueryParam("twToken") @Optional String twToken,
@QueryParam("twTokenSecret") @Optional String twTokenSecret,
@QueryParam("nvToken") @Optional String nvToken,
@QueryParam("fkToken") @Optional String fkToken,
@QueryParam("fkTokenSecret") @Optional String fkTokenSecret,
@QueryParam("ytToken") @Optional String ytToken,
@QueryParam("streamId") String streamId,
@QueryParam("search") String search,
@QueryParam("appPayLoad") String appPayLoad)
throws Exception {
String status = "jobId " + jobId + " search " + search;
List<JobLauncherInfo> results = new ArrayList<JobLauncherInfo>();
//String env_gobblin_work_dir = System.getenv("GOBBLIN_WORK_DIR");
String env_gobblin_job_dir = System.getenv("GOBBLIN_JOB_CONFIG_DIR");
/*
if(env_gobblin_work_dir == null){
throw new RuntimeException("Environment property for GOBBLIN_WOParameterRK_DIR is not set.");
}
*/
if (env_gobblin_job_dir == null) {
throw new RuntimeException("Environment property for GOBBLIN_JOB_CONFIG_DIR is not set.");
}
String sysFilePropPath = getConfigDirectory(env_gobblin_job_dir) + "/conf/" + propertiesFile;
String jobFilePropPath = env_gobblin_job_dir + "/" + jobId + ".pull";
// Get it from the cache
Properties sysProp = jobPropertyMap.get(propertiesFile);
if (sysProp == null) {
sysProp = ConfigurationConverter.getProperties(new PropertiesConfiguration(sysFilePropPath));
jobPropertyMap.put(propertiesFile, sysProp);
}
// Get it from the cache
Properties jobProp = jobPropertyMap.get(jobId);
if (jobProp == null) {
jobProp = ConfigurationConverter.getProperties(new PropertiesConfiguration(jobFilePropPath));
jobPropertyMap.put(jobId, jobProp);
}
// Not sure if we need this one. This needs to be confirmed in the forums discussion.
synchronized (this) {
//ConfigurationConverter.getProperties(new PropertiesConfiguration(sysFilePropPath));
//ConfigurationConverter.getProperties(new PropertiesConfiguration(jobFilePropPath));
if (jobProp.get("page.query.parameter") != null) {
jobProp.put("page.query.parameter", search);
}
if (isNotEmpty(streamId)) {
jobProp.put("stream.id", streamId);
}
if (isNotEmpty(fbToken)) {
jobProp.put("facebook.access.token", fbToken);
}
if (isNotEmpty(twToken, twTokenSecret)) {
jobProp.put("twitter.access.token", twToken);
jobProp.put("access.token.secret", twTokenSecret);
}
if (isNotEmpty(nvToken
public class YTTest2Impl {
private Properties launcherProps = new Properties();
@BeforeClass
public void startUp() throws Exception {
this.launcherProps = ConfigurationConverter.getProperties(new PropertiesConfiguration("gobblin-standalone.properties"));
}
@Test
public void testLaunchJob2Impl() throws Exception {
Properties jobProps = loadJobProps();
jobProps.setProperty(ConfigurationKeys.JOB_NAME_KEY,
jobProps.getProperty(ConfigurationKeys.JOB_NAME_KEY) + "-testLaunchJob2Impl");
try {
runTest(jobProps);
} finally {
jobProps.clear();
}
}
static Properties loadJobProps() throws IOException {
Properties jobProps = new Properties();
try {
jobProps = ConfigurationConverter.getProperties(new PropertiesConfiguration("yt-v1.pull"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
return jobProps;
}
public void runTest(Properties jobProps) throws Exception {
String jobName = jobProps.getProperty(ConfigurationKeys.JOB_NAME_KEY);
String jobId = JobLauncherUtils.newJobId(jobName);
jobProps.setProperty(ConfigurationKeys.JOB_ID_KEY, jobId);
Closer closer = Closer.create();
try {
JobLauncher jobLauncher = closer.register(JobLauncherFactory.newJobLauncher(this.launcherProps, jobProps));
jobLauncher.launchJob(null);
} finally {
closer.close();
}
}
}
java.lang.IllegalArgumentException: invalid version format: -X GET -H 'X-RESTLI-PROTOCOL-VERSION: 2.0.0' HTTP/1.1
at io.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:121)
at io.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:76)
at io.netty.handler.codec.http.HttpRequestDecoder.createMessage(HttpRequestDecoder.java:86)
at io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:219)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:350)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:571)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:512)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:426)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:398)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:877)
at java.lang.Thread.run(Thread.java:748)
2019-01-07 20:03:31 CET INFO [DefaultQuartzScheduler_Worker-1] org.apache.gobblin.cluster.HelixUtils - Waiting for job job_dot-i-json-dot-avro_1546887000021 to complete... State - IN_PROGRESS
2019-01-07 20:03:31 CET INFO [AMRM Heartbeater thread] org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider - Failing over to rm365
2019-01-07 20:03:31 CET WARN [AMRM Heartbeater thread] org.apache.hadoop.security.UserGroupInformation - PriviledgedActionException as:gobblin (auth:KERBEROS) cause:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): Invalid AMRMToken from appattempt_1544639802277_223258_000001
2019-01-07 20:03:31 CET WARN [AMRM Heartbeater thread] org.apache.hadoop.ipc.Client$Connection$1 - Exception encountered while connecting to the server : org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): Invalid AMRMToken from appattempt_1544639802277_223258_000001
2019-01-07 20:03:31 CET WARN [AMRM Heartbeater thread] org.apache.hadoop.security.UserGroupInformation - PriviledgedActionException as:gobblin (auth:KERBEROS) cause:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): Invalid AMRMToken from appattempt_1544639802277_223258_000001
2019-01-07 20:03:31 CET INFO [AMRM Heartbeater thread] org.apache.hadoop.io.retry.RetryInvocationHandler - Exception while invoking allocate of class ApplicationMasterProtocolPBClientImpl over rm365 after 796 fail over attempts. Trying to fail over immediately.
org.apache.hadoop.security.token.SecretManager$InvalidToken: Invalid AMRMToken from appattempt_1544639802277_223258_000001
at sun.reflect.GeneratedConstructorAccessor83.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.apache.hadoop.yarn.ipc.RPCUtil.instantiateException(RPCUtil.java:53)
at org.apache.hadoop.yarn.ipc.RPCUtil.unwrapAndThrowException(RPCUtil.java:104)
at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationMasterProtocolPBClientImpl.allocate(ApplicationMasterProtocolPBClientImpl.java:79)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:256)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)
at com.sun.proxy.$Proxy18.allocate(Unknown Source)
at org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl.allocate(AMRMClientImpl.java:277)
at org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl$HeartbeatThread.run(AMRMClientAsyncImpl.java:224)
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): Invalid AMRMToken from appattempt_1544639802277_223258_000001
at org.apache.hadoop.ipc.Client.call(Client.java:1502)
at org.apache.hadoop.ipc.Client.call(Client.java:1439)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:230)
at com.sun.proxy.$Proxy17.allocate(Unknown Source)
at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationMasterProtocolPBClientImpl.allocate(ApplicationMasterProtocolPBClientImpl.java:77)
... 8 more
2019-01-07 20:03:31 CET INFO [AMRM Heartbeater thread] org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider - Failing over to rm180
2019-01-07 20:03:31 CET INFO [AMRM Heartbeater thread] org.apache.hadoop.io.retry.RetryInvocationHandler - Exception while invoking allocate of class ApplicationMasterProtocolPBClientImpl over rm180 after 797 fail over attempts. Trying to fail over after sleeping for 2662ms.
java.net.ConnectException: Call From node-35.hadoop.xxx/xx.xx.xx.xx to rm-1.xxx:8030 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.GeneratedConstructorAccessor82.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731)
at org.apache.hadoop.ipc.Client.call(Client.java:1506)
at org.apache.hadoop.ipc.Client.call(Client.java:1439)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:230)
at com.sun.proxy.$Proxy17.allocate(Unknown Source)
at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationMasterProtocolPBClientImpl.allocate(ApplicationMasterProtocolPBClientImpl.java:77)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:256)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)
at com.sun.proxy.$Proxy18.allocate(Unknown Source)
at org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl.allocate(AMRMClientImpl.java:277)
at org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl$HeartbeatThread.run(AMRMClientAsyncImpl.java:224)
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:648)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:744)
at org.apache.hadoop.ipc.Client$Connection.access$3000(Client.java:396)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1555)
at org.apache.hadoop.ipc.Client.call(Client.java:1478)
... 12 more
2019-01-07 20:03:32 CET INFO [DefaultQuartzScheduler_Worker-1] org.apache.gobblin.cluster.HelixUtils - Waiting for job job_dot-i-json-dot-avro_1546887000021 to complete... State - IN_PROGRESS