使用sqoop将数据从HDFS导出到MySQL时出现以下错误。我使用bigint
和varchar
创建了表员工。
17/01/04 19:30:14 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
17/01/04 19:30:14 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
17/01/04 19:30:15 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
17/01/04 19:30:15 INFO tool.CodeGenTool: Beginning code generation
17/01/04 19:30:16 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `employee` AS t LIMIT 1
17/01/04 19:30:16 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `employee` AS t LIMIT 1
17/01/04 19:30:16 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /home/adithyan/hadoop_dir/hadoop-1.2.1
Note: /tmp/sqoop-adithyan/compile/0555b3b23ccf665b309ee88adde7936e/employee.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
17/01/04 19:30:21 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-adithyan/compile/0555b3b23ccf665b309ee88adde7936e/employee.jar
17/01/04 19:30:21 INFO mapreduce.ExportJobBase: Beginning export of employee
17/01/04 19:30:28 INFO input.FileInputFormat: Total input paths to process : 1
17/01/04 19:30:28 INFO input.FileInputFormat: Total input paths to process : 1
17/01/04 19:30:29 INFO util.NativeCodeLoader: Loaded the native-hadoop library
17/01/04 19:30:29 WARN snappy.LoadSnappy: Snappy native library not loaded
17/01/04 19:30:31 INFO mapred.JobClient: Running job: job_201701041906_0005
17/01/04 19:30:32 INFO mapred.JobClient: map 0% reduce 0%
17/01/04 19:31:21 INFO mapred.JobClient: Task Id : attempt_201701041906_0005_m_000000_0, Status : FAILED
java.io.IOException: Can't export data, please check failed map task logs
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:112)
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
Caused by: java.lang.RuntimeException: Can't parse input data: '1201'
at employee.__loadFromFields(employee.java:378)
at employee.parse(employee.java:306)
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83)
... 10 more
Caused by: java.lang.NumberFormatException: For input string: "1201"
at
以下是我尝试使用sqoop
导出的HDFS中的数据1201, gopal, manager, 50000, TP
1202, manisha, preader, 50000, TP
1203, kalil, php dev, 30000, AC
1204, prasanth, php dev, 30000, AC
1205, kranthi, admin, 20000, TP
1206, satish p, grp des, 20000, GR
我正在使用mysql-5.1.28.jar
,hadoop-1.2.8
。
有人可以帮我吗?