如何将mysql表中的数据加载到cloudera中(使用virtual box启动)

9jyewag0  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(407)

我有一个使用wamp服务器访问的web应用程序,该服务器要求用户提供其当前位置并获取其纬度和经度。
这些纬度和经度值存储在mysql数据库的一个表中。
现在我需要处理这个纬度和经度值,以便为用户提供他/她最近的位置。
所以我想把mysql数据库中的纬度和经度值导入hadoop。
我安装了cloudera并使用virtualbox启动了它。现在在cloudera命令提示符中,当我尝试使用这样的查询导入mysql表中的值时

$ bin/sqoop import --connect jdbc:mysql://192.168.56.1/testDb --table latlog --username root -P -m 1

其中testdb是我的数据库名,latlog是我的表名
它显示如下错误:
执行语句时出错:java.sql.sqlexception:拒绝访问用户“root”@“localhost”(使用密码:否)java.sql.sqlexception:拒绝访问用户“root”@“localhost”(使用密码:是)
如何将本机mysql数据库中的表加载到云主机hadoop中?
我尝试了这么多的解决方案提供了网络,但无法解决它。任何帮助都将不胜感激。。

lh80um4z

lh80um4z1#

将数据从mysql导入cloudera vm的步骤如下:
下载mysql-connector-java-5.1.26-bin.jar并保存在cloudera的桌面上
使用命令将这个jar文件复制到sqoop库中
sudo cp/home/cloudera/desktop/mysql-connector-java-5.1.26-bin.jar/usr/lib/sqoop/lib
现在使用命令将当前工作目录更改为sqoop cd /usr/lib/sqoop 在系统中以管理员身份打开命令提示符,通过运行 ipconfig 命令示例:192.168.56.1
现在在mysql中,使用以下命令发布所有权限
授予上的所有特权。至root@192.168.56.1 由“根”标识,并带有授予选项;
现在,在cloudera命令行中,为导入数据提供以下命令 bin/sqoop import --connect jdbc:mysql://192.168.56.1/testDb --table latlog --username root -P -m 1 其中testdb是数据库名,latlog是表名。然后它要求输入password.type root作为密码。现在使用sqoop将数据从mysql导入cloudera(hadoop)
要查看导入的数据,请发出命令
hadoop dfs-ls-r latlog
它显示了存储导入数据的文件。要查看该文件中的内容,请发出命令
hadoop dfs-cat latlog/第m部分-00000
打印latlog表中的所有数据。
谢谢。。

相关问题