Экспорт Sqoop не выполняется. Не могу разобрать входные данные: '<data>' - PullRequest
0 голосов
/ 05 июля 2018

Когда я запускаю команду sqoop export из терминала, она работает нормально. Но если я запускаю ту же команду из рабочего процесса oozie, она выдает мне следующую ошибку.

ror: java.io.IOException: Can't export data, please check failed map task logs
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:122)
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:787)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)

Caused by: java.lang.RuntimeException: Can't parse input data: '2018-05-14,967,893,74,8863.330000000005,7617.07,1246.26'
at adjust_jazz_compare.__loadFromFields(adjust_jazz_compare.java:512)
at adjust_jazz_compare.parse(adjust_jazz_compare.java:430)
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:89)
... 10 more Caused by: java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:854)
at adjust_jazz_compare.__loadFromFields(adjust_jazz_compare.java:482)
... 12 more

Ниже приведена команда, которую я использую

export --connect <jdbc> --username <user> --password <pass> --table <table> --export-dir <dir> --input-fields-terminated-by ',' --input-lines-terminated-by '\n'

Таблица свойств в улье

hive.inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{field.delim=,, serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[], parameters:{totalSize=3973, numRows=70, rawDataSize=3903, COLUMN_STATS_ACCURATE=true, numFiles=1, transient_lastDdlTime=1530647041}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE)

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Можете ли вы показать, как вы создали таблицу? Может быть, вы забыли про разделитель полей в Hive?

FIELDS TERMINATED BY ','

Пример создания кода таблицы:

CREATE TABLE IF NOT EXISTS employee (
    eid int, 
    name String,
    salary String, 
    destination String)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
0 голосов
/ 05 июля 2018

строка, которая содержит "'2018-05-14,967,893,74,8863.330000000005,7617.07,1246.26'" не может быть проанализирован в sqoop.

В терминале Hive проверьте правильный формат этой строки. Возможно, это какой-то специальный символ или есть пробелы из-за того, что эти данные не могут быть проанализированы.

Пожалуйста, поделитесь схемой таблицы, представленной в кусте. А также запросом улья.

...