hadoop sqoop将csv文件加载到mysql中

时间:2015-08-24 14:57:55

标签: hadoop sqoop

我正在学习hadoop sqoop。我正在开发一个hortonworks沙箱(一个单节点的hadoop虚拟机:http://hortonworks.com/products/hortonworks-sandbox/#install)。

我正在尝试通过sqoop将csv文件加载到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

更新:@ z-1 我尝试了你的代码,它返回了不同的东西 enter image description here

2 个答案:

答案 0 :(得分:1)

尝试使用mysql的用户名和密码

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

注意 - 用户应该有权限。

答案 1 :(得分:1)

您必须提供MySQL的用户名和密码,并且必须具有访问数据库的权限。

看起来你刚刚安装了mysql,并且没有将root帐户配置为使用root密码保护。

您可以使用以下步骤执行此操作:

  1. $ mysqladmin -u root password "newpassword" 例如$ mysqladmin -u root password mysql-root-password
  2. 重启MySQL守护程序。 $ sudo service mysqld restart$ sudo /etcinit.d/mysqld restart
  3. 使用$ mysql -u root -P登录MySQL,并在出现提示时输入密码。
  4. 如果您以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 -u root -P
    2. 登录MySQL
    3. mysql> GRANT all PRIVILEGES on filghtinfo.* to 'root'@'localhost' IDENTIFIED BY 'password'

      注意:您在此处设置的密码应在sqoop中使用。