环境:Sqoop1.4.7- CDH6.3.2
原有Hive表
statdate date类型
Loaddate timpstamp
原有目标oracle表
Statdate date类型
Loaddate varchar(20)
出现问题:
测试过程:
原以为sqoop脚本或者数据库账号密码的问题,测试hive string类型数据导出至oracle varchar类型,成功。
经百度,分割符,null 空值处理都没有问题;
猜测可能是数据长度的问题,查验数据,没有too long data问题。
Yarn 查看日志情况:
Yarn logs -applicationId application_xxxx_xxxx
日志大致情况如下:
不能获取到 statdate数据,猜测是数据类型的问题
修改hive表数据类型:
statdate string
Loaddate string
修改oracle表数据类型:
statdate varchar(10)
重新执行导数脚本,数据导出成功。
另外常出现问题情况:
Oracle中经常使用大写字母进行表名创建,为了导数方便,两边表名一般保持一致,会直接将大写oracle的表名贴过来用于hive创建表,但是hive 底层表的路径为自动转为小写【user/hive/warehouse/XXXX】此处需要注意,如果贴的大写会导致读取不到hdfs路径。



