hadoopsqoop将csv文件加载到mysql中

eivgtgni  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(532)

我正在学习hadoopsqoop。我正在开发hortonworks沙盒(一个单节点hadoop虚拟机:http://hortonworks.com/products/hortonworks-sandbox/#install).
我正在尝试通过sqoop将csv文件加载到mysql表中。我已经创建了一个数据库flightinfo和一个表中的天气。我在配置单元中创建了一个名为sqoop\u tmp的表,其中包含该csv文件的文件位置。
我使用以下命令将csv加载到mysql中:

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

以下是错误消息:

更新:@z-1我尝试了你的代码,它返回了一些不同的东西

vlju58qv

vlju58qv1#

试试这个:

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

你有 –- 不是 -- . 这两个不一样。

g2ieeal7

g2ieeal72#

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

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

注意-用户应有权限。

k5hmc34c

k5hmc34c3#

您必须提供mysql的用户名和密码,并且必须具有访问数据库的权限。
看起来您重新安装了mysql,但没有配置根帐户以使用根密码进行保护。
您可以使用以下步骤完成此操作: $ mysqladmin -u root password "newpassword" 例如 $ mysqladmin -u root password mysql-root-password 重新启动mysql守护程序。 $ sudo service mysqld restart 或者 $ sudo /etcinit.d/mysqld restart 使用登录mysql $ mysql -u root -P 并在提示时输入密码。
如果将数据库创建为根用户。现在可以发出以下sqoop命令将数据从hdfs导出到sqoop数据库。 $ sqoop export --connect jdbc:mysql://localhost/flightinfo --username root -P --table weather --export-dir /apps/hive/warehouse/sqoop_tmp 仍然面临许可问题??用户访问数据库的权限是个问题。
然后,您应该能够通过使用以下步骤授予权限来解决问题。
使用登录mysql
$ mysql -u root -P mysql> GRANT all PRIVILEGES on filghtinfo.* to 'root'@'localhost' IDENTIFIED BY 'password' 注意:您在这里设置的密码应该来自sqoop。

相关问题