2016-08-19 1 views
1

Я нашел много людей с подобной ошибкой, но никаких советов не работает для моей проблемы.Ошибка импорта 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-адресу, и теперь он работает нормально.

+0

Не могли бы вы попробовать первую команду с '--username root' вместо' --username = root'? –

+0

Да, я пробовал с = или без, но без изменений. Он не работает как – Selverine

ответ

2

Вот как работает Sqoop. См. official doc.

If a table does not have a primary key defined and the --split-by is not provided, then import will fail unless the number of mappers is explicitly set to one with the --num-mappers 1 option or the --autoreset-to-one-mapper option is used. The option --autoreset-to-one-mapper is typically used with the import-all-tables tool to automatically handle tables without a primary key in a schema.

0

Здесь имя пользователя и пароль задает пользователю и пароль для базы данных, которую вы пытаетесь подключить. Имя пользователя и пароль здесь не для пользователя входа в mysql. Поэтому используйте имя пользователя и пароль для пользователя, указанного для базы данных, которую вы пытаетесь подключить.

0

Поздний, но не менее, я думаю, что я собираюсь дать ответ части здесь, в этой теме

Аналогичный вопрос я столкнулся с sqoop в импорте данных из хоста-окно машины в виртуальную ящике гостевой ОС Ubuntu, только из-за установки моего хост-компьютера Windows имя пользователя mysql не имеет достаточных привилегий для предоставления соединения и схемы по удаленному запросу.

Итак, теперь не много говорить о проблеме я иллюстрирующим вопрос, который я был обращенным -

[email protected]:~/Installations/sqoop-1.4.4$ bin/sqoop import --connect jdbc:mysql://192.168.56.1/india --table india_most_populated_cities --target-dir /user/vm4learning/remotedir/ --username root --password password -m 1 
no main manifest attribute, in /home/vm4learning/Installations/hbase-0.94.14/lib/coprocessor.jar 
find: paths must precede expression: sqoop-test-1.4.4.jar 
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] 
Warning: $HADOOP_HOME is deprecated. 

17/12/06 11:01:10 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 
17/12/06 11:01:11 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset. 
17/12/06 11:01:11 INFO tool.CodeGenTool: Beginning code generation 
17/12/06 11:01:13 ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access denied for user 'root'@'Administrator' (using password: YES) 
java.sql.SQLException: Access denied for user 'root'@'Administrator' (using password: YES) 

Тогда я пришел к моему окну хоста-машине, запустите IPCONFIG из ЦМДА и первого получить IPAddress хозяина машина и в Linux (Ubuntu) это «Ifconfig»:

Ethernet adapter VirtualBox Host-Only Network: 

    Connection-specific DNS Suffix . : 
    Link-local IPv6 Address . . . . . : fe80::54d4:4f16:4bdb:885%18 
    IPv4 Address. . . . . . . . . . . : 192.168.56.1 
    Subnet Mask . . . . . . . . . . . : 255.255.255.0 
    Default Gateway . . . . . . . . . : 

Так вот мой IP-адрес 192.168.56.1 в окнах хоста-машине, а затем я залогиниться в MySQL через команду в окне хоста и работать под указанным сценарий предоставление привилегии -

MySQL -u -p корень Введите пароль: ********

MySQL> GRANT ALL ON . TO [email protected]'192.168.56.1 «ИДЕНТИФИЦИРОВАННЫЙ« пароль »; Query OK, 0 строк, 1 предупреждение (0,00 сек)

mysql> привилегии flush; Query OK, 0 затронутых строк (0,00 сек)

MySQL> выход

это, а затем я иду в гостевой Ubuntu машину внутри виртуальной коробки (делая это мои окна были связаны с беспроводным доступом в Интернет) и повторно -run то же самое выше указанной команды sqoop и что импортирует мои нужные данные таблицы в кластер.

Я хотел бы разделить строки, которые я получил после успешного сценария запуска -

[email protected]:~/Installations/sqoop-1.4.4$ bin/sqoop import --connect jdbc:mysql://192.168.56.1/india --table india_most_populated_cities --target-dir /user/vm4learning/remotedir/ --username root --password password -m 1 
no main manifest attribute, in /home/vm4learning/Installations/hbase-0.94.14/lib/coprocessor.jar 
find: paths must precede expression: sqoop-test-1.4.4.jar 
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] 
Warning: $HADOOP_HOME is deprecated. 

17/12/06 17:00:55 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 
17/12/06 17:00:55 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset. 
17/12/06 17:00:55 INFO tool.CodeGenTool: Beginning code generation 
17/12/06 17:00:58 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `india_most_populated_cities` AS t LIMIT 1 
17/12/06 17:00:58 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `india_most_populated_cities` AS t LIMIT 1 
17/12/06 17:00:58 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /home/vm4learning/Installations/hadoop-1.2.1 
Note: /tmp/sqoop-vm4learning/compile/fc8e526de8f7a74171941455a22f573f/india_most_populated_cities.java uses or overrides a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
17/12/06 17:01:02 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-vm4learning/compile/fc8e526de8f7a74171941455a22f573f/india_most_populated_cities.jar 
17/12/06 17:01:02 WARN manager.MySQLManager: It looks like you are importing from mysql. 
17/12/06 17:01:02 WARN manager.MySQLManager: This transfer can be faster! Use the --direct 
17/12/06 17:01:02 WARN manager.MySQLManager: option to exercise a MySQL-specific fast path. 
17/12/06 17:01:02 INFO manager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql) 
17/12/06 17:01:02 INFO mapreduce.ImportJobBase: Beginning import of india_most_populated_cities 
17/12/06 17:01:06 INFO mapred.JobClient: Running job: job_201712061003_0002 
17/12/06 17:01:07 INFO mapred.JobClient: map 0% reduce 0% 
17/12/06 17:01:29 INFO mapred.JobClient: map 100% reduce 0% 
17/12/06 17:01:36 INFO mapred.JobClient: Job complete: job_201712061003_0002 
17/12/06 17:01:37 INFO mapred.JobClient: Counters: 18 
17/12/06 17:01:37 INFO mapred.JobClient: Job Counters 
17/12/06 17:01:37 INFO mapred.JobClient:  SLOTS_MILLIS_MAPS=24525 
17/12/06 17:01:37 INFO mapred.JobClient:  Total time spent by all reduces waiting after reserving slots (ms)=0 
17/12/06 17:01:37 INFO mapred.JobClient:  Total time spent by all maps waiting after reserving slots (ms)=0 
17/12/06 17:01:37 INFO mapred.JobClient:  Launched map tasks=1 
17/12/06 17:01:37 INFO mapred.JobClient:  SLOTS_MILLIS_REDUCES=0 
17/12/06 17:01:37 INFO mapred.JobClient: File Output Format Counters 
17/12/06 17:01:37 INFO mapred.JobClient:  Bytes Written=10406 
17/12/06 17:01:37 INFO mapred.JobClient: FileSystemCounters 
17/12/06 17:01:37 INFO mapred.JobClient:  HDFS_BYTES_READ=87 
17/12/06 17:01:37 INFO mapred.JobClient:  FILE_BYTES_WRITTEN=80423 
17/12/06 17:01:37 INFO mapred.JobClient:  HDFS_BYTES_WRITTEN=10406 
17/12/06 17:01:37 INFO mapred.JobClient: File Input Format Counters 
17/12/06 17:01:37 INFO mapred.JobClient:  Bytes Read=0 
17/12/06 17:01:37 INFO mapred.JobClient: Map-Reduce Framework 
17/12/06 17:01:37 INFO mapred.JobClient:  Map input records=271 
17/12/06 17:01:37 INFO mapred.JobClient:  Physical memory (bytes) snapshot=81043456 
17/12/06 17:01:37 INFO mapred.JobClient:  Spilled Records=0 
17/12/06 17:01:37 INFO mapred.JobClient:  CPU time spent (ms)=2530 
17/12/06 17:01:37 INFO mapred.JobClient:  Total committed heap usage (bytes)=49807360 
17/12/06 17:01:37 INFO mapred.JobClient:  Virtual memory (bytes) snapshot=973082624 
17/12/06 17:01:37 INFO mapred.JobClient:  Map output records=271 
17/12/06 17:01:37 INFO mapred.JobClient:  SPLIT_RAW_BYTES=87 
17/12/06 17:01:37 INFO mapreduce.ImportJobBase: Transferred 10.1621 KB in 33.9572 seconds (306.4444 bytes/sec) 
17/12/06 17:01:37 INFO mapreduce.ImportJobBase: Retrieved 271 records. 

Надеется, что это поможет, а также принести мой пост ответа на эту тему, спасибо.

 Смежные вопросы

  • Нет связанных вопросов^_^