在使用Sqoop将Hive中的数据导出到MySQL的过程中遇到这样的一个异常,是导出到的数据库的max_allowed_packet设置的过小所致。
通过在数据库中执行命令:
mysql> show variables like ‘max_%packet‘;
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| max_allowed_packet | 268435456 |
+--------------------+-----------+
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
上面是改变之后的值,但是网上多数是说修改my.cnf的时候,这个值直接加到mysqld下面,设置为20M以上的值即可,但是之前使用的配置中已经很高了,通过观察发现query_cache_limit值为1M试着改动该值之后发现max_allowed_packet这个值也有所改动.
max_allowed_packet参数
这个参数为接收的数据包的大小,该值取较小的值可以捕获数据包的异常,以及防止由于数据包过大而导致内存溢出。
query_cache_limit参数
该参数指定了单次查询缓存大小,不宜过大,如果数据比较多的情况下应该适当的加大该参数值,但是一般小数据量的查询不需要设置太大否则造成内存碎片。
时间: 2024-12-20 01:08:05