sqoop异常解决

错误1:java.sql.SQLException: null, message from server: “Host ‘*****’ is not allowed to connect to this MySQL server”

安装sqoop成功之后,与mysql进行测试,报错如下:

****为你的主机名

java.sql.SQLException: null,  message from server: "Host '*****' is not allowed to connect to this MySQL server"

此错误是因为你虚拟机上的mysql用户权限没有设置,只允许root 与local联合使用,可以进行如下验证,确定是否是此原因

1. 登录mysql

 mysql -uroot -p123456(输入你的密码)

登录成功
在这里插入图片描述

2. 查看user表

一定要先选择数据库(use mysql;)不然会报错如下:
在这里插入图片描述

mysql> use mysql;
Database changed
mysql> select host ,user from user;

查询结果如下:用户root只能使用localhost,所以要更改为任何ip或者主机名都可以,即改为%
在这里插入图片描述

3. 修改权限

mysql> update user set host='%' where user ='root';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;

修改完之后再次查询结果如下:
在这里插入图片描述

再次执行命令不再报错:

查询mysql中所有的数据库

 sqoop list-databases --connect jdbc:mysql://lingyun2:3306/ --username root --password 123456

在这里插入图片描述

错误2:当使用sqoop从mysql导入hive报错如下:

在这里插入图片描述

是因为sqoop lib下面缺少hive的jar
将hive\lib下面的hive-common的jar包复制到sqoop\lib下一份即可
先去hive\lib下面确认hive-common jar的具体版本信息

在这里插入图片描述
进行复制:

#根据自己的实际路径和具体版本进行修改
 cp /usr/tools/hive/lib/hive-common-2.3.8.jar /usr/tools/sqoop-1.4.7/lib/

复制完重新运行导入命令即可成功

错误3:当运行mysql相关的命令时,虽然有结果,但是依旧报错如下内容

javax.net.ssl.SSLException: closing inbound before receiving peer’s close_notify

在这里插入图片描述

是因为链接mysql时SSL证书出现了一些问题
直接在url上加上useSSL=false即可,如下所示:

#添加之前
sqoop list-databases --connect jdbc:mysql://lingyun2:3306/ --username root --password 123456
#添加之后
sqoop list-databases --connect jdbc:mysql://lingyun2:3306/?useSSL=false --username root --password 123456

猜你喜欢

转载自blog.csdn.net/weixin_41907283/article/details/129319914
今日推荐