You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@sqoop.apache.org by Manickam P <ma...@outlook.com> on 2013/06/24 15:29:46 UTC
Sqoop Import into Hive
Hi,
I'm trying to import from my oracle db and want to insert in my hive. For that i used the below script. ./sqoop-import --connect jdbc:oracle:thin:@10.198.100.100:1521/cp.TNSNAME --username scott--password tiger --table=EMPLOYEE --hive-table Employee --create-hive-table --hive-import --hive-home /path to hive home/But i am getting the below error. 13/06/24 09:06:10 ERROR security.UserGroupInformation: PriviledgedActionException as:root cause:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory EMPLOYEE already exists13/06/24 09:06:10 ERROR tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory EMPLOYEE already exists at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:137) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:889) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850) at org.apache.hadoop.mapreduce.Job.submit(Job.java:500) at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530) at org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJobBase.java:173) at org.apache.sqoop.mapreduce.ImportJobBase.runJob(ImportJobBase.java:151) at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:221) at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:545) at org.apache.sqoop.manager.OracleManager.importTable(OracleManager.java:380) at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:403) at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476) at org.apache.sqoop.Sqoop.run(Sqoop.java:145) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229) at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
I am unable to find out the directory in my hdfs. I tried to execute the dfs command but there is no directory like that. Pls help me.
Thanks,Manickam P
Re: Sqoop Import into Hive
Posted by Jarek Jarcec Cecho <ja...@apache.org>.
Hi Manickam,
the Hive import have two phases. In the first phase Sqoop will import data into temporary directory just like in the normal non-hive import. Second phase will then load the data into Hive. Your job seems to be failing as the output directory required for the first phase already exists. When no --target-dir or --warehouse-dir parameter are used, it's created in home directory on HDFS of user that executed Sqoop.
What exact HDFS command are you using to see the directory? I would advise to run following command:
hadoop dfs -rmr EMPLOYEE
Jarcec
On Mon, Jun 24, 2013 at 06:59:46PM +0530, Manickam P wrote:
> Hi,
> I'm trying to import from my oracle db and want to insert in my hive. For that i used the below script. ./sqoop-import --connect jdbc:oracle:thin:@10.198.100.100:1521/cp.TNSNAME --username scott--password tiger --table=EMPLOYEE --hive-table Employee --create-hive-table --hive-import --hive-home /path to hive home/But i am getting the below error. 13/06/24 09:06:10 ERROR security.UserGroupInformation: PriviledgedActionException as:root cause:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory EMPLOYEE already exists13/06/24 09:06:10 ERROR tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory EMPLOYEE already exists at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:137) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:889) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850) at org.apache.hadoop.mapreduce.Job.submit(Job.java:500) at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530) at org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJobBase.java:173) at org.apache.sqoop.mapreduce.ImportJobBase.runJob(ImportJobBase.java:151) at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:221) at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:545) at org.apache.sqoop.manager.OracleManager.importTable(OracleManager.java:380) at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:403) at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476) at org.apache.sqoop.Sqoop.run(Sqoop.java:145) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229) at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
> I am unable to find out the directory in my hdfs. I tried to execute the dfs command but there is no directory like that. Pls help me.
>
> Thanks,Manickam P