Оригинальный вопросSqoop 1.99.3, экспорт в MySQL возвращает пустые таблицы
Я работаю с Sqoop 1.99.3, и я пытаюсь экспортировать файл из HDFS в MySql, который содержит поле DateTime. К сожалению, после выполнения задания целевая таблица пуста, и нет сообщений об ошибках/журналов.
- Поддерживает ли эта версия Sqoop формат DateTime?
- Есть ли обходной путь для решения этой проблемы?
Пример строки CSV:
- 1, 'имя', 2016-04-01 15: 10: 57,2016-05-31 05:00:59
Создать заявление для таблицы MySQL:
CREATE TABLE `unit` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`u_save_date` datetime DEFAULT NULL,
`c_save_time` datetime NOT NULL,
PRIMARY KEY (`id`));
с меня попросили, вот мой код. Ничего революционного, не скопировано из Sqoop 5-минутного демо-клипа Api guide (link) с измененными параметрами (здесь я вставил их по умолчанию).
Код отлично подходит для таблиц, которые не содержат формат даты и времени. Я также пытался экспортировать через sqoop оболочки (с теми же параметрами), но целевые таблицы были, опять же, пустой
кодекса в Java:
String url = "http://localhost:12000/sqoop/";
SqoopClient client = new SqoopClient(url);
MJob newjob = client.newJob(1, org.apache.sqoop.model.MJob.Type.EXPORT);
MJobForms connectorForm = newjob.getConnectorPart();
MJobForms frameworkForm = newjob.getFrameworkPart();
newjob.setName("ExportJob");
connectorForm.getStringInput("table.schemaName").setValue("");
connectorForm.getStringInput("table.tableName").setValue("table");
connectorForm.getStringInput("table.columns").setValue("id,name");
frameworkForm.getStringInput("input.inputDirectory").setValue("/input");
frameworkForm.getIntegerInput("throttling.extractors").setValue(1);
frameworkForm.getIntegerInput("throttling.loaders").setValue(1);
Status status = client.createJob(newjob);
if(status.canProceed()) {
System.out.println("New Job ID: "+ newjob.getPersistenceId());
} else {
System.out.println("Check for status and forms error ");
}
printMessage(newjob.getConnectorPart().getForms());
printMessage(newjob.getFrameworkPart().getForms());
последующий вопрос
Хорошо, мне удалось решить эту проблему. Однако теперь я столкнулся с одной и той же проблемой с другой таблицей (даже при правильном форматировании DateTime).
Пример строки CSV:
- 1, 'имя', 'имя', '2016-05-11 12:08:27 ', '3a99471d-6f42-445f-b651-4a557a0e5b97 '
Последний столбец сгенерированный Java UUID и хранится как char (36).
журналы ошибок доля –
также Команда экспорта sqoop –
Я добавил свой код и некоторое объяснение. Как я писал в сообщении, в файле журнала sqoop нет ошибки/исключения. И спасибо вам за помощь! :) –