import 从mysql导出时select column不能声明字段的导出顺序,只能起到筛选作用。
import 严格按照mysql字段的存储顺序执行即第一次建表时声明的顺序;
如果修改顺序会导致导出的文件字段紊乱;如果mysql新增字段,sqoop导出该字段时可能为null值,因为新字段在mysql存储底层与原数据文件是分离的;export时报错日志 sqoop ClassNotFoundException xxx , xxx是hive表名。
解决方法:在/tmp/sqoop-root/compile/目录下有许多临时文件夹,文件夹名称为一大串字符,每个文件夹内有对应表名生成的xxx.jar / xxx.java / xxx.class文件。将这三个文件拷贝到你的sqoop/lib目录下即可解决。或者在sqoop命令行加上 --bindir sqoop/lib 指定生成文件的位置。省去移动的麻烦。hive的insert overwrite table xxx select 的字段顺序与目标xxx表的建表时的字段顺序严格一致,不要与sqoop混淆。
【数仓】sqoop踩坑记录
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 摘要:Sqoop,MySQL,Hive,Impala 在Spark跑批到Hive的任务后面加入Sqoop任务,将数...
- 这两天有一个需求如文章题目所示,要把之前从mysql数据库导出到hive上的数据再反向操作导到mysql,具体用途...
- 本文大纲: 因内容较多,带目录的PDF查看是比较方便的: 数仓建设保姆级教程PDF文档[http://mp.wei...
- 文档大纲: 一、数仓基本概念 1. 数据仓库架构 我们在谈数仓之前,为了让大家有直观的认识,先来谈数仓架构,“架构...