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
Post a Comment