在使用Sqoop将Hive中的数据导出到Mysql的过程中遇到这样的一个异常,是导出到的数据库的max_allowed_packet设置的过小所致。
通过在数据库中执行命令:
mysql> show variables like 'max_%packet';
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| max_allowed_packet | 268435456 |
+--------------------+-----------+
上面是改变之后的值,但是网上多数是说修改my.cnf的时候,这个值直接加到mysqld下面,设置为20M以上的值即可,但是之前使用的配置中已经很高了,而且该问题每隔一段时间又恢复为1024,通过查看网上相关的解答确定该问题是被攻击所致。一般的解决方法就是开启防火墙、禁止外网访问部分端口。
max_allowed_packet参数
这个参数为接收的数据包的大小,该值取较小的值可以捕获数据包的异常,以及防止由于数据包过大而导致内存溢出。