【数仓】sqoop踩坑记录

  1. import 从mysql导出时select column不能声明字段的导出顺序,只能起到筛选作用。

  2. import 严格按照mysql字段的存储顺序执行即第一次建表时声明的顺序;
    如果修改顺序会导致导出的文件字段紊乱;如果mysql新增字段,sqoop导出该字段时可能为null值,因为新字段在mysql存储底层与原数据文件是分离的;

  3. export时报错日志 sqoop ClassNotFoundException xxx , xxx是hive表名。
    解决方法:在/tmp/sqoop-root/compile/目录下有许多临时文件夹,文件夹名称为一大串字符,每个文件夹内有对应表名生成的xxx.jar / xxx.java / xxx.class文件。将这三个文件拷贝到你的sqoop/lib目录下即可解决。或者在sqoop命令行加上 --bindir sqoop/lib 指定生成文件的位置。省去移动的麻烦。

  4. hive的insert overwrite table xxx select 的字段顺序与目标xxx表的建表时的字段顺序严格一致,不要与sqoop混淆。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容