linux下hive导入mysql数据报错

linux环境中,从mysql导入数据到hive报错,hive插入数据报错,这是为什么?

img


img

img

img


img

解决方法:
当你每次执行失败后,其实在/tmp/sqoop-你的用户名/compile(或者是/tmp/sqoop/compile,可以找找看)文件夹下有许多临时文件夹,文件夹名称为一大串字符,每个文件夹内有对应表名生成的.jar包、.java和.class文件。将这三个文件拷贝到你的sqoop安装目录
b文件夹下即可解决。
PS:如果你不知道哪个文件夹下是你这次执行任务产生到文件有两种解决方法:
把文件夹按时间排序,找最新到一个,或者把全部文件夹删除重新执行一遍命令也行(删除文件总有一丝丝风险)。
在执行命令时加上--blind yourdirectory参数,指定生成文件的位置,移动完成后重新执行命令——当然,如果有权限的话可以直接写到你的sqoop安装目录
b下,这样可以省去移文件的麻烦。
示例
sqoop export --connect jdbc:mysql://localhost:3306
taobao --username root --password 123456 --table user_log --export-dir
'/user/hive/warehouse
taobao.db/inner_user_log'
--bindir ./ --fields-terminated-by ',';
1
2
3
还有一个错误,可能会遇到:
ERROR tool.ExportTool: Encountered IOException running export job: java.io.IOException: No columns to generate for ClassWriter
原因:多半儿是因为mysql的链接问题,可以看看是不是密码输入错误。
注意
hive表和mysql表字段类型和数量要一致,mysql表编码要指定utf8。
可以暂时不需要安装Zokeeper。
参考:
link1
link2
link3
link4
————————————————
原文链接:https://blog.csdn.net/mbest6/article/details/105606166