我正在学习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
答案 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密码保护。
您可以使用以下步骤执行此操作:
$ mysqladmin -u root password "newpassword"
例如$ mysqladmin -u root password mysql-root-password
$ sudo service mysqld restart
或$ sudo /etcinit.d/mysqld restart
$ 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
仍面临许可问题?用户访问数据库的权限是问题所在。
然后,您应该可以通过使用以下步骤授予权限来解决。
$ mysql -u root -P
mysql> GRANT all PRIVILEGES on filghtinfo.* to 'root'@'localhost' IDENTIFIED BY 'password'
注意:您在此处设置的密码应在sqoop中使用。