[ https://issues.apache.org/jira/browse/SQOOP-3144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16028783#comment-16028783 ]
Krishnaprasad commented on SQOOP-3144: -------------------------------------- Hi, I am also stuck up with the same bug as mentioned here. I am using Sqoop version 1.99.7 and the MySQL innodb version is 5.5.54. May I know is there a work around to this problem? It will be helpful if somebody can suggest a quick solution to resolve this issue. Thanks, Krishnaprasad > Exception: org.apache.sqoop.common.SqoopException Message: > GENERIC_JDBC_CONNECTOR_0016:Can't fetch schema - > ----------------------------------------------------------------------------------------------------------- > > Key: SQOOP-3144 > URL: https://issues.apache.org/jira/browse/SQOOP-3144 > Project: Sqoop > Issue Type: Bug > Components: sqoop2-jdbc-connector > Affects Versions: 1.99.7 > Environment: hduser@cai-hadoop01:/usr/local/sqoop/bin$ cat > /etc/*release* > DISTRIB_ID=Ubuntu > DISTRIB_RELEASE=16.04 > DISTRIB_CODENAME=xenial > DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS" > NAME="Ubuntu" > VERSION="16.04.1 LTS (Xenial Xerus)" > ID=ubuntu > ID_LIKE=debian > PRETTY_NAME="Ubuntu 16.04.1 LTS" > VERSION_ID="16.04" > HOME_URL="http://www.ubuntu.com/" > SUPPORT_URL="http://help.ubuntu.com/" > BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" > UBUNTU_CODENAME=xenial > hduser@cai-hadoop01:/usr/local/sqoop/bin$ > ----------------------------------------------------------- > hduser@cai-hadoop01:/usr/local/sqoop/bin$ uname -a > Linux cai-hadoop01 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC > 2016 x86_64 x86_64 x86_64 GNU/Linux > Reporter: Mohamed El-Sayyad > Labels: beginner, easyfix, easytest, newbie > Original Estimate: 48h > Remaining Estimate: 48h > > Requirement: Importing MySQL Database to HDFS > Minor Issue: No Unique Primary Key included in DB > Workaround: Added Year as partition Column > Current Issue: > org.apache.sqoop.common.SqoopException: GENERIC_JDBC_CONNECTOR_0016:Can't > fetch schema > Cause: > This is because a double quote is appended, which is not parsed by MySQL DB. > Using min/max query: SELECT MIN("year"), MAX("year") FROM "sports"."players" > ====================================================================================================== > # SQOOP LOG # > 2017-03-02 10:24:10,576 INFO > [org.apache.sqoop.connector.jdbc.GenericJdbcFromInitializer.configurePartitionProperties(GenericJdbcFromInitializer.java:152)] > Using partition column: year > 2017-03-02 10:24:10,576 INFO > [org.apache.sqoop.connector.jdbc.GenericJdbcFromInitializer.configurePartitionProperties(GenericJdbcFromInitializer.java:238)] > Using min/max query: SELECT MIN(" > year"), MAX("year") FROM "sports"."players" > 2017-03-02 10:24:10,576 ERROR > [org.apache.sqoop.server.SqoopProtocolServlet.doPut(SqoopProtocolServlet.java:86)] > Exception in PUT http://localhost:12000/sqoop/v1/job/MysqlToHdfs/start > org.apache.sqoop.common.SqoopException: GENERIC_JDBC_CONNECTOR_0016:Can't > fetch schema > at > org.apache.sqoop.connector.jdbc.GenericJdbcFromInitializer.initialize(GenericJdbcFromInitializer.java:64) > at > org.apache.sqoop.connector.jdbc.GenericJdbcFromInitializer.initialize(GenericJdbcFromInitializer.java:47) > at org.apache.sqoop.driver.JobManager$1.call(JobManager.java:520) > at org.apache.sqoop.driver.JobManager$1.call(JobManager.java:517) > at > org.apache.sqoop.utils.ClassUtils.executeWithClassLoader(ClassUtils.java:281) > at > org.apache.sqoop.driver.JobManager.initializeConnector(JobManager.java:516) > at > org.apache.sqoop.driver.JobManager.createJobRequest(JobManager.java:423) > at org.apache.sqoop.driver.JobManager.start(JobManager.java:317) > at > org.apache.sqoop.handler.JobRequestHandler.startJob(JobRequestHandler.java:353) > at > org.apache.sqoop.handler.JobRequestHandler.handleEvent(JobRequestHandler.java:114) > at > org.apache.sqoop.server.v1.JobServlet.handlePutRequest(JobServlet.java:84) > at > org.apache.sqoop.server.SqoopProtocolServlet.doPut(SqoopProtocolServlet.java:81) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) > at > org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:594) > at > org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticationFilter.doFilter(DelegationTokenAuthenticationFilter.java:291) > at > org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:553) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) > at org.eclipse.jetty.server.Server.handle(Server.java:499) > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) > at > org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You > have an error in your SQL syntax; check the manual that corresponds to your > MySQL server version for the right syntax to use near '"sports"."players"' at > line 1 > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > ====================================================================================================== > # Running the Query on MYSQL # > With Double Quotes: > mysql> SELECT MIN("year"), MAX("year") FROM "sports"."players"; > ERROR 1064 (42000): You have an error in your SQL syntax; check the manual > that corresponds to your MySQL server version for the right syntax to use > near '"sports"."players"' at line 1 > Without Double Quotes: > mysql> SELECT MIN(year), MAX(year) FROM sports.players; > +-----------+-----------+ > | MIN(year) | MAX(year) | > +-----------+-----------+ > | 1950 | 2009 | > +-----------+-----------+ > 1 row in set (0.01 sec) > mysql> > # MySQL Version # > mysql> SHOW VARIABLES LIKE "%version%"; > +-------------------------+-------------------------+ > | Variable_name | Value | > +-------------------------+-------------------------+ > | innodb_version | 5.7.17 | > | protocol_version | 10 | > | slave_type_conversions | | > | tls_version | TLSv1,TLSv1.1 | > | version | 5.7.17-0ubuntu0.16.04.1 | > | version_comment | (Ubuntu) | > | version_compile_machine | x86_64 | > | version_compile_os | Linux | > +-------------------------+-------------------------+ > 8 rows in set (0.00 sec) > # MySQL Driver Version # > hduser@cai-hadoop01:/usr/local/sqoop/bin$ ls -l ../lib > total 968 > -rwxrwxrwx 1 root root 990927 Feb 12 15:26 mysql-connector-java-5.1.40-bin.jar > hduser@cai-hadoop01:/usr/local/sqoop/bin$ > # SQOOP ENV Vars # > export SQOOP_HOME=/usr/local/sqoop > export SQOOP_CONF_DIR=$SQOOP_HOME/conf > export SQOOP_CLASSPATH=$SQOOP_CONF_DIR > export SQOOP_SERVER_EXTRA_LIB=/usr/local/sqoop/lib > export PATH=$SQOOP_HOME/bin:/bin:/sbin:$PATH -- This message was sent by Atlassian JIRA (v6.3.15#6346)