Я нашел много людей с подобной ошибкой, но никаких советов не работает для моей проблемы.Ошибка импорта Sqoop: доступ запрещен для пользователя 'root' @ 'localhost', даже если права в порядке
Моя командная строка:
sqoop import --connect jdbc:mysql://localhost/databaseY --username=root -P --table tableX --target-dir /user/ec2-user/databaseY/tableX --as-textfile --fields-terminated-by "\t"
Ошибка
16/08/19 11:25:51 INFO mapreduce.Job: Job job_1471608424445_0028 running in uber mode : false
16/08/19 11:25:51 INFO mapreduce.Job: map 0% reduce 0%
16/08/19 11:25:58 INFO mapreduce.Job: map 25% reduce 0%
16/08/19 11:26:04 INFO mapreduce.Job: map 50% reduce 0%
16/08/19 11:26:06 INFO mapreduce.Job: Task Id : attempt_1471608424445_0028_m_000000_0, Status : FAILED
Error: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
Как это возможно, что запуск карты и остановки после того, как из-за этой ошибки?
Похоже, я все права необходимо, как это два командной строки работают:
sqoop list-databases --connect jdbc:mysql://localhost --username root -P
И
В MySQL с корневой учетной записи я могу сделать
select * from databaseY.tableX
- -EDIT ---
Эта командная строка работает:
sqoop import --connect jdbc:mysql://localhost/databaseY --username root --password PASSWORD --query "select * from databaseY.tableX where number = 1474 AND \$CONDITIONS" --target-dir /tmp/ok --as-textfile --direct --split-by number
, но это один №:
sqoop import --connect jdbc:mysql://localhost/databaseY --username root --password PASSWORD --query "select * from databaseY.tableX where 1 = 1 AND \$CONDITIONS" --target-dir /tmp/ok --as-textfile --direct --split-by number
Тогда я понял, что если я использую -m 1 мой sqoop импорт работает. Только с -m 1
Означает ли это, что у меня плохая конфигурация кластера? Почему моя работа работает только с одной задачей карты?
----- РЕШЕНИЕ -----
Это была просто проблема IP-адреса. Я изменил localhost по IP-адресу, и теперь он работает нормально.
Не могли бы вы попробовать первую команду с '--username root' вместо' --username = root'? –
Да, я пробовал с = или без, но без изменений. Он не работает как – Selverine