错误如下:
2024-01-04 13:17:47,113 WARN mapreduce.Counters: Group FileSystemCounters is deprecated. Use org.apache.hadoop.mapreduce.FileSystemCounter instead
2024-01-04 13:17:47,132 INFO mapreduce.ExportJobBase: Transferred 0 bytes in 67.7846 seconds (0 bytes/sec)
2024-01-04 13:17:47,147 WARN mapreduce.Counters: Group org.apache.hadoop.mapred.Task$Counter is deprecated. Use org.apache.hadoop.mapreduce.TaskCounter instead
2024-01-04 13:17:47,147 INFO mapreduce.ExportJobBase: Exported 0 records.
2024-01-04 13:17:47,147 ERROR mapreduce.ExportJobBase: Export job failed!
2024-01-04 13:17:47,175 ERROR tool.ExportTool: Error during export:
Export job failed!
at org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:445)

此时我们应该回想一下数据集分隔符的问题:
-
\001
是起始符(Start of Heading)的ASCII码表示。它通常用于分隔文本文件中的字段或记录。当使用\001
作为分隔符时,Hive会将每行的第一个非空字段作为第一个字段,第二个非空字段作为第二个字段,以此类推。这意味着字段的顺序与原始文本文件中的顺序相同。 -
\t
是制表符,通常用于分隔文本文件中的字段。当使用t
作为分隔符时,Hive会将每行按照指定的分隔符进行分割,并将分割后的结果作为不同的字段。这意味着字段的顺序可能与原始文本文件中的顺序不同。
因此,选择使用\001
还是\t
作为分隔符取决于你的需求。如果你需要保持字段的顺序与原始文本文件中的顺序相同,则应使用001
作为分隔符;如果你不关心字段的顺序,则可以使用\t
作为分隔符。
我们将分隔符换成默认"\001|"重新执行sqoop语句:
进入mariadb进行查看验证:
导入成功!