hadoop sqoop 将 csv 文件加载到 mysql

hadoop sqoop load csv file into mysql

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

我正在尝试通过 sqoop 将 csv 文件加载到 mysql table。我在其中创建了一个数据库 flightinfo 和一个 table 天气。我在名为 sqoop_tmp 的配置单元中创建了一个 table,其中包含该 csv 文件的文件位置。

我使用以下命令将 csv 加载到 mysql:

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

错误信息如下:

更新:@z-1 我试过你的代码,它 returns 有点不同

试试这个:

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

–- 而不是 --。这两个不一样。

尝试使用 mysql

的用户名和密码
sqoop export --connect jdbc:mysql://localhost/flightinfo --table weather --export-dir /apps/hive/warehouse/sqoop_tmp --username SomeUser -P

注意 - 用户应该有权限。

您必须提供 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 并在出现提示时输入密码。

如果您将数据库创建为 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

    登录MySQL
  2. mysql> GRANT all PRIVILEGES on filghtinfo.* to 'root'@'localhost' IDENTIFIED BY 'password'

    注意:这里设置的密码应该是sqoop使用的。