Ask Your Question
1

jdbc external drivers installation

asked 2020-02-10 21:25:22 -0600

umanohar gravatar image

updated 2020-02-10 21:25:41 -0600

I have streamsets installed on a RHEL8 on an aws ece t2.xlarge instance. I am trying to install the jdbc drive for oracle and mssql. I followed the instructions in https://streamsets.com/documentation/.... But I get the following error when I try to upload the driver from the UI -

com.streamsets.datacollector.util.RestException: REST_1003 - Failed to create directory: lib at com.streamsets.datacollector.restapi.StageLibraryResource.installExtras(StageLibraryResource.java:468) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:760) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617) at com.streamsets.datacollector.http.GroupsInScopeFilter.lambda$doFilter$0(GroupsInScopeFilter.java:82) at com.streamsets.datacollector.security.GroupsInScope.execute(GroupsInScope.java:33) at com.streamsets.datacollector.http.GroupsInScopeFilter.doFilter(GroupsInScopeFilter.java:81) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:310) at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:264) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) at com.streamsets.datacollector.http.LocaleDetectorFilter.doFilter(LocaleDetectorFilter.java:39) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) at org.eclipse.jetty.servlets.HeaderFilter.doFilter(HeaderFilter.java:117) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) at com.streamsets.pipeline.http.MDCFilter.doFilter(MDCFilter.java:47) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler ... (more)

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2020-02-11 12:27:36 -0600

metadaddy gravatar image

Looks like the problem might be filesystem permissions. The sdc user needs write access to the external libraries directory so that Data Collector can save the JDBC driver. Looks like you need to do something along the lines of:

chown -R sdc:sdc /opt/streamsets-datacollector/streamsets-libs-extras

or, if you set up a separate external libraries directory, something like:

chown -R sdc:sdc /opt/sdc-extras
edit flag offensive delete link more

Comments

Tried that already. Gave full permission on that directory even. Did not work. I finally just copied the jars to streamsets-libs/streamsets-datacollector-jdbc-lib/lib/ and restarted. Now it is connecting...

umanohar gravatar imageumanohar ( 2020-02-11 13:50:51 -0600 )edit

I am thinking that in addition to giving the permission to the extras directory, permission has to be given to streamsets-libs/streamsets-datacollector-jdbc-lib/lib/ and restarted?

umanohar gravatar imageumanohar ( 2020-02-11 13:51:54 -0600 )edit
0

answered 2020-02-11 12:12:37 -0600

jwhalen gravatar image

Try specifying the JDBC Driver Class Name in the Legacy Tab for the origin. For SQL Server it would be com.microsoft.sqlserver.jdbc.SQLServerDriver

edit flag offensive delete link more

Comments

deleted previous comment. goes with previous

umanohar gravatar imageumanohar ( 2020-02-11 13:50:36 -0600 )edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2020-02-10 21:25:22 -0600

Seen: 24 times

Last updated: Feb 11