2015-08-24 2 views
1

Я изучаю sqoop. Я работаю над песочницей hortonworks (виртуальная машина hadoop единственного узла: http://hortonworks.com/products/hortonworks-sandbox/#install).hadoop sqoop загрузить csv файл в mysql

Я пытаюсь загрузить файл csv через sqoop в таблицу mysql. Я создал базу данных flightinfo и таблицу погоды в нем. Я создал таблицу в hive под названием sqoop_tmp с расположением файла этого CSV-файла.

я использовал следующие команды для загрузки CSV в MySQL:

sqoop export --connect jdbc:mysql://localhost/flightinfo –-table weather –-export-dir /apps/hive/warehouse/sqoop_tmp 

Вот сообщение об ошибке: enter image description here

обновление: @ г-1 я попробовал свой код и он возвращает что-то другое enter image description here

ответ

1

Вы должны указать имя пользователя и пароль MySQL и должны иметь разрешения на доступ к базе данных.

Похоже, что вы сделали новую установку mysql и не настроили учетную запись root для защиты с помощью пароля root.

Вы можете сделать это, используя следующие шаги:

  1. $ mysqladmin -u root password "newpassword" , например $ mysqladmin -u root password mysql-root-password
  2. Restart MySQL демон. $ sudo service mysqld restart или $ sudo /etcinit.d/mysqld restart
  3. Войдите в MySQL, используя $ mysql -u root -P и введите пароль при появлении соответствующего запроса.

Если у вас есть база данных, созданная пользователем root. Теперь вы можете выполнить следующую команду sqoop для экспорта данных из hdfs в базу данных sqoop.

$ sqoop export --connect jdbc:mysql://localhost/flightinfo --username root -P --table weather --export-dir /apps/hive/warehouse/sqoop_tmp

Еще перед вопросом разрешения ?? Проблема с доступом к базе данных для пользователей - проблема.

Затем вы должны решить, предоставив разрешения, используя следующие шаги.

  1. Войти в MySQL с помощью $ mysql -u root -P
  2. mysql> GRANT all PRIVILEGES on filghtinfo.* to 'root'@'localhost' IDENTIFIED BY 'password'

    Примечание: Пароль задается здесь должен быть использован с sqoop.

+0

В 1) я пробовал $ mysqladmin -u пароль root «newpassword» и $ mysqladmin -u пароль root mysql-root-password в оболочке mysql, он говорит об ошибке в синтаксисе sql. – thotwielder

+0

Я думаю, что если пароль уже установлен. Вышеуказанная команда запрещена. Вместо этого попробуйте '$ mysql_secure_installation', чтобы сбросить пароль, если вы не уверены в том, какой пароль для root. – Avinash

+0

Я не делал 1) 2) 3), просто запустите инструкцию sqoop с именем пользователя root, затем запросит пароль, я googled, а кто-то говорит, что для mysql он должен быть пустым или пустым, я пробовал пустым, и он работает! – thotwielder

0

Попробуйте это:

sqoop export --connect jdbc:mysql://localhost/flightinfo --table weather --export-dir /apps/hive/warehouse/sqoop_tmp 

У вас был –- не --. Эти два не совпадают.

+0

Я добавил снимок экрана. Ваше предложение верное, но есть еще одна ошибка (см. Снимок экрана). Благодарю. – thotwielder

+0

Это похоже на проблему аутентификации на сервере mysql. Как найти имя пользователя и пароль? Я могу просто набрать mysql под оболочкой hadoop для ввода оболочки mysql, она никогда не запрашивала имя пользователя или пароль. – thotwielder

+0

см. @ Ответ Авинаша. Вам нужно указать имя пользователя и пароль – LuckyGuess

1

попробовать с именем пользователя и паролем MySQL

sqoop export --connect jdbc:mysql://localhost/flightinfo --table weather --export-dir /apps/hive/warehouse/sqoop_tmp --username SomeUser -P 

Примечание - пользователь должен иметь разрешение.

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