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字符类型设置小了原理一样。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐