hadoop - Sqoop job fails with KiteSDK validation error for Oracle import -


i attempting run sqoop job load oracle db , parquet format hadoop cluster. job incremental.

sqoop version 1.4.6. oracle version 12c. hadoop version 2.6.0 (distro cloudera 5.5.1).

the sqoop command (this creates job, , executes it):

$ sqoop job -fs hdfs://<hadoopnamenode>:8020 \ --create myjob \ -- import \ --connect jdbc:oracle:thin:@<dbhost>:<dbport>/<dbname> \ --username <username> \ -p \ --as-parquetfile \ --table <username>.<tablename> \ --target-dir <hdfspath>  \ --incremental append  \ --check-column <tableprimarykey>  $ sqoop job --exec myjob 

error on execute:

16/02/05 11:25:30 error sqoop.sqoop: got exception running sqoop: org.kitesdk.data.validationexception: dataset name 05112528000000918_2088_<username>.<tablename> not alphanumeric (plus '_')     @ org.kitesdk.data.validationexception.check(validationexception.java:55)     @ org.kitesdk.data.spi.compatibility.checkdatasetname(compatibility.java:103)     @ org.kitesdk.data.spi.compatibility.check(compatibility.java:66)     @ org.kitesdk.data.spi.filesystem.filesystemmetadataprovider.create(filesystemmetadataprovider.java:209)     @ org.kitesdk.data.spi.filesystem.filesystemdatasetrepository.create(filesystemdatasetrepository.java:137)     @ org.kitesdk.data.datasets.create(datasets.java:239)     @ org.kitesdk.data.datasets.create(datasets.java:307)     @ org.apache.sqoop.mapreduce.parquetjob.createdataset(parquetjob.java:107)     @ org.apache.sqoop.mapreduce.parquetjob.configureimportjob(parquetjob.java:80)     @ org.apache.sqoop.mapreduce.datadrivenimportjob.configuremapper(datadrivenimportjob.java:106)     @ org.apache.sqoop.mapreduce.importjobbase.runimport(importjobbase.java:260)     @ org.apache.sqoop.manager.sqlmanager.importtable(sqlmanager.java:668)     @ org.apache.sqoop.manager.oraclemanager.importtable(oraclemanager.java:444)     @ org.apache.sqoop.tool.importtool.importtable(importtool.java:497)     @ org.apache.sqoop.tool.importtool.run(importtool.java:605)     @ org.apache.sqoop.tool.jobtool.execjob(jobtool.java:228)     @ org.apache.sqoop.tool.jobtool.run(jobtool.java:283)     @ org.apache.sqoop.sqoop.run(sqoop.java:143)     @ org.apache.hadoop.util.toolrunner.run(toolrunner.java:70)     @ org.apache.sqoop.sqoop.runsqoop(sqoop.java:179)     @ org.apache.sqoop.sqoop.runtool(sqoop.java:218)     @ org.apache.sqoop.sqoop.runtool(sqoop.java:227)     @ org.apache.sqoop.sqoop.main(sqoop.java:236) 

troubleshooting steps:

0) hdfs stable, other sqoop jobs functional, oracle source db , connection has been tested.

1) tried creating synonym in oracle, way have --table option as:

--table tablename (without username)

this gave me error table name not correct. needs full username.tablename --table option.

error:

16/02/05 12:04:46 error tool.importtool: imported failed: there no column found in target table <tablename>. please ensure table name correct. 

2) made sure parquet issue. removed --as-parquetfile option , job successful.

3) wondered if somehow caused incremental options. removed --incremental append & --check-column options , job successful. confuses me.

4) tried job mysql , successful.

has run similar? there way (or advisable) disable kite validation? seems dataset being created dots ("."), kite sdk complains - assumption on part not familiar kite sdk.

thanks in advance,

jose

resolved. there seems known issue jdbc connectivity oracle 12c. using specific ojdbc6 (instead of 7) did trick. fyi - ojdbc installed in /usr/share/java/ , symbolic link created in /installpath.../lib/sqoop/lib/


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -