2013-11-22 30 views
0

我试图从sqoop加载数据到sql server。我正在写:到SQL Server的Sqoop。空白字符串错误

sqoop export --connect "jdbc:sqlserver://<server name>;username=<user>; 
password=<pass>;database=<db>" --table test_out --input-fields-terminated-by ~ 
--export-dir /user/test.out 

,但我得到的错误时,排在test.out空字符串:

1~a 
<nul>~b 
<blank>~c 

在这个例子中,第三行返回一个错误:

Failed map tasks=1 

有什么建议吗?

回答

0

我建议看看失败的地图任务日志,因为它通常包含有关失败的详细信息。

Sqoop总会预计,列在导出的数据每行的数量将等于列的目标表的数量。从文本文件导出时,列的数量将由行上存在的分隔符的数量决定。根据提供的示例,目标表似乎有2列,而第三行有零分隔符,因此它假设它是单列。这种差异会导致Sqoop失败。

+0

对不起,第三行有分隔符。我如何查看有关故障的详细信息? In log: – geldar

+0

INFO org.apache.hadoop.mapred.JobClient:所有花费的总时间减少了预留插槽后的等待时间(ms)= 0 INFO org.apache.hadoop.mapred.JobClient:所有地图花费的总时间预留时隙(毫秒)=之后等待0 2013年11月22日16:05:08218 INFO org.apache.hadoop.mapred.JobClient:推出映射任务= 16 2013年11月22日16:05:08218 INFO有机apache.hadoop.mapred.JobClient:数据本地地图任务= 16 2013-11-22 16:05:08,218 INFO org.apache.hadoop.mapred.JobClient:SLOTS_MILLIS_REDUCES = 0 2013-11-22 16:05: 08,219 INFO org.apache.hadoop.mapred.JobClient:失败的映射任务= 1 – geldar