Проблемы с экспортом поплавков и двойников из hdsf в MySql с использованием sqoop

Я использую версии 1.2.1 и sqoop 1.4.4.

Я новичок в hadoop/sqoop, и у меня возникла проблема. У меня есть данные в hdfs, которые я хочу экспортировать в MySQL, но экспорт не удается. Я использовал следующее утверждение:

sqoop export --connect jdbc:mysql://{ip-адрес}/{база данных} --username имя пользователя -P --table {tablename} --export-dir {export-dir} --input-fields-terminated-by ',' --строки-оканчиваются символом '\n' --verbose

Ошибка, которую я получаю:

14/02/28 10:12:40 INFO mapred.JobClient: Running job: job_201402040959_0234
14/02/28 10:12:41 INFO mapred.JobClient:  map 0% reduce 0%
14/02/28 10:12:51 INFO mapred.JobClient:  map 50% reduce 0%
14/02/28 10:22:51 INFO mapred.JobClient:  map 0% reduce 0%
14/02/28 10:22:52 INFO mapred.JobClient: Task Id : attempt_201402040959_0234_m_000000_0, Status : FAILED
Task attempt_201402040959_0234_m_000000_0 failed to report status for 600 seconds. Killing!
14/02/28 10:22:52 INFO mapred.JobClient: Task Id : attempt_201402040959_0234_m_000001_0, Status : FAILED
Task attempt_201402040959_0234_m_000001_0 failed to report status for 600 seconds. Killing!
14/02/28 10:23:00 INFO mapred.JobClient:  map 50% reduce 0%
14/02/28 10:33:00 INFO mapred.JobClient:  map 0% reduce 0%
14/02/28 10:33:00 INFO mapred.JobClient: Task Id : attempt_201402040959_0234_m_000000_1, Status : FAILED
Task attempt_201402040959_0234_m_000000_1 failed to report status for 600 seconds. Killing!
14/02/28 10:33:00 INFO mapred.JobClient: Task Id : attempt_201402040959_0234_m_000001_1, Status : FAILED
Task attempt_201402040959_0234_m_000001_1 failed to report status for 600 seconds. Killing!
14/02/28 10:33:09 INFO mapred.JobClient:  map 50% reduce 0%
14/02/28 10:43:09 INFO mapred.JobClient:  map 0% reduce 0%
14/02/28 10:43:09 INFO mapred.JobClient: Task Id : attempt_201402040959_0234_m_000000_2, Status : FAILED
Task attempt_201402040959_0234_m_000000_2 failed to report status for 600 seconds. Killing!
14/02/28 10:43:10 INFO mapred.JobClient: Task Id : attempt_201402040959_0234_m_000001_2, Status : FAILED
Task attempt_201402040959_0234_m_000001_2 failed to report status for 600 seconds. Killing!
14/02/28 10:43:18 INFO mapred.JobClient:  map 50% reduce 0%
14/02/28 10:53:18 INFO mapred.JobClient:  map 25% reduce 0%
14/02/28 10:53:19 INFO mapred.JobClient:  map 0% reduce 0%
14/02/28 10:53:20 INFO mapred.JobClient: Job complete: job_201402040959_0234
14/02/28 10:53:20 INFO mapred.JobClient: Counters: 7
14/02/28 10:53:20 INFO mapred.JobClient:   Job Counters 
14/02/28 10:53:20 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=11987
14/02/28 10:53:20 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0
14/02/28 10:53:20 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0
14/02/28 10:53:20 INFO mapred.JobClient:     Launched map tasks=8
14/02/28 10:53:20 INFO mapred.JobClient:     Data-local map tasks=8
14/02/28 10:53:20 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=0
14/02/28 10:53:20 INFO mapred.JobClient:     Failed map tasks=1
14/02/28 10:53:20 INFO mapreduce.ExportJobBase: Transferred 0 bytes in 2,441.242 seconds (0 bytes/sec)
14/02/28 10:53:20 INFO mapreduce.ExportJobBase: Exported 0 records.
14/02/28 10:53:20 ERROR tool.ExportTool: Error during export: Export job failed!

Пример данных:

201110,1.8181818181818181
201111,1.4597701149425288
201112,1.766990291262136
20119,1.6153846153846154
20121,1.5857142857142856
201210,1.55
201211,1.5294117647058822
201212,1.6528925619834711
20122,1.5789473684210527
20123,1.4848484848484849
20124,1.654320987654321
20125,1.5942028985507246
20126,1.5333333333333334
20127,1.4736842105263157
20128,1.4666666666666666
20129,1.4794520547945205
20131,1.6875
201310,8.233183856502242
201311,8.524886877828054
201312,9.333333333333334
20132,1.7272727272727273
20133,3.42
20134,6.380597014925373
20135,9.504716981132075
20136,8.538812785388128
20137,8.609649122807017
20138,8.777272727272727
20139,8.506787330316742
20141,4.741784037558685

Я попытался экспортировать аналогичный набор данных с идентичным оператором экспорта только с целыми числами, а не с удвоением, и это удалось. Я также пробовал аналогичный набор данных с числами с плавающей запятой вместо двойников, но это также не удается. Кто-нибудь, пожалуйста, дайте мне подсказку, почему это не работает? Я делаю что-то не так с типами данных, которые не подходят для MySQL?

Я также попытался выполнить тот же запрос со следующим дополнением:

-m 1

Это дает ту же ошибку, что и выше, за исключением того, что шаг карты завершается на 100%, а не только на 50%.

-Спасибо, пожалуйста, дайте мне знать, если я должен был предоставить дополнительную информацию.


person Murium    schedule 28.02.2014    source источник


Ответы (2)


Обновите вопрос, указав версии Hadoop, Sqoop и MySQL, чтобы можно было воспроизвести проблему.

Я предполагаю, что вы используете Hadoop 0.21.0. Если это так, то это может быть вызвано org.apache.sqoop.mapreduce.ProgressThread, который использует TaskInputOutputContext, который не сообщает должным образом базовому генератору отчетов, как описано в проблема [MAPREDUCE-1905].

Если вы используете 0.21.0, вам нужно будет использовать 0.21.1 или другую версию Hadoop.

В противном случае я бы предположил, что это какая-то проблема в ProgressThread или в том, как сообщает Sqoop. Если это не сработает, возможно, в ваших журналах YARN или MR1 есть что-то еще.

Папка журналов YARN по умолчанию (устанавливается в etc/hadoop/yarn-env.sh):

cd $HADOOP_YARN_HOME/logs

Папка журналов MR1 по умолчанию (устанавливается в etc/hadoop/mapred-env.sh):

cd $HADOOP_MAPRED_HOME/logs
person Declan Kelly    schedule 01.03.2014
comment
Я довольно долго просматривал журналы в $HADOOP_MAPRED_HOME/logs, но до сих пор не понимаю, откуда берется моя ошибка. Там была куча разных лог-файлов, и я почему-то не нашел ничего, что объясняло бы, почему возникает ошибка. Я попытался сравнить успешный целочисленный экспорт с неудачным экспортом с плавающей запятой и не заметил разницы в журналах. Есть ли у вас какие-либо предложения? Еще раз спасибо, извините, если мой вопрос немного расплывчатый. Я немного запутался, но я могу попытаться прояснить, если вы скажете мне. - person Murium; 04.03.2014

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

person Murium    schedule 03.03.2014