1.乱码
两个库的编码保持一直,如hive这边的编码是utf-8,mysql也要为utf-8,($代表命令)
1.1检查mysql的编码
show variables like 'character_set%'; //查看编码集
如果不是图1-1这样就需要改,或者在每次导出导入的时候添加?useUnicode=true&characterEncoding=utf-8
图1-1
//每次添加 例如
sqoop export -connect jdbc:mysql://localhost:3306/ceshi?useUnicode=true&characterEncoding=utf-8
直接修改,就可以不用每次都添加?useUnicode=true&characterEncoding=utf-8
进入
$vim /etc/my.cnf
在[mysqld]下面添加
character_set_server=utf8
保存退出,重启mysql
$systemctl restart mysqld
最后看一下是否为图1-1一样,否则没有修改成功。
2.导出导入成功但只有部分数据
2.1字符类型设置错误,如hive这边为int有10位数,而mysql这边int设置的为int(6),数据就只会有小于等于int(6)的数据。
2.2表没有对应成功如字段名设置错误,比如hive这边ranking原本是排名,而mysql这边粗心弄成的评分,也会导致只有一部分数据,跟2.1字符类型设置小了原理一样。