[ 
https://issues.apache.org/jira/browse/SQOOP-2634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14996883#comment-14996883
 ] 

Jarek Jarcec Cecho commented on SQOOP-2634:
-------------------------------------------

{quote}
At the first step we could put all a connector's dependencies into its 
classpath. Then we could improve this as some jars are dependent by all the 
connectors, like the jars listed by you: {{joda-time}}, {{connector-sdk}}, 
{{sqoop-common}}, etc. We could put these common dependencies into 
configuration "tmpjars" before submitting jobs to make sure they could be 
shared by all the connectors. 
{quote}

I'm not so much concerned about shipping one jar to the execution engine twice. 
I'm more concerned about how we load classes from shared jars inside the 
running code - whether each connector will load it's own instance of classes 
inside those shared jars or not.

The reason for that is that I see a possible problem with exchanging data from 
one connector to the other. As far as I know, class equivalency doesn't cross 
{{ClassLoader}} boundaries. E.g. {{ClassUtils.loadClass(A.class, 
FirstClassLoader) != ClassUtils.loadClass(B.class, SecondClassLoader)}}, which 
could be a potential problem here.

{quote}
For *HDFS Connector*, we should use HDFS libraries from the cluster as before.
{quote}

I'm open to this behavior. Can we include how this actually will be implemented 
in the design doc? So far I don't see any provision to add dependency jars from 
Server's own classpath to the connector's classpath.




> Sqoop2: Allow connectors to express jar dependencies
> ----------------------------------------------------
>
>                 Key: SQOOP-2634
>                 URL: https://issues.apache.org/jira/browse/SQOOP-2634
>             Project: Sqoop
>          Issue Type: Sub-task
>            Reporter: Dian Fu
>            Assignee: Dian Fu
>             Fix For: 1.99.7
>
>         Attachments: SQOOP-2634.001.patch, SQOOP-2634.002.patch, 
> SQOOP-2634.003.patch, SQOOP-2634.004.patch, SQOOP-2634.005.patch, 
> SQOOP-2634.006.patch, SQOOP-2634.007.patch, SQOOP-2634.008.patch, 
> SQOOP-2634.009.patch, SQOOP-2634.010.patch, design-doc-v1.pdf, 
> design-doc-v2.pdf, design-doc-v3.pdf
>
>
> Currently Sqoop 2 has already provided the ability to config jar dependencies 
> with property "org.apache.sqoop.classpath.extra". The limitation of this 
> property is that we have to put all the dependencies together. It can't 
> express jar dependencies for a specified connector. This capacity is useful 
> as some connectors may have conflict jar dependencies. Put all the 
> dependencies from different connectors together may cause problems.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to