datax空文件报文件类型错误

报错情况

在用datax同步时报检查文件类型失败,报错信息如下:

检查建表语句,确认存储类型为text,如下:

检查hdfs文件,发现存在大小为0的文件,如下

解决方案如下:

方案1、在HDFS路径后加/*,会自动扫描所有文件,并跳过空文件,"path":"/user/hive/warehouse/dv_report.db/table/dt=${yyyymmdd}/*"

方案2、删除空文件,hdfs dfs -rm ***

空文件一般为第一个文件,如

"/user/hive/warehouse/dv_report.db/table/_SUCCESS"

或者 "/user/hive/warehouse/dv_report.db/table/dt=${yyyymmdd}/part-00000-****"

但并不是所有的表都会产生空文件,所以使用删文件的方式需要检查每个表的实际hdfs文件情况,不太推荐。

空文件产生原因

part-000**文件,job在做partiton时由于分桶函数不够完善,或者数据倾斜较严重,而开发没有足够的经验对其做出处理,导致某些reduce没有分到任何数据成为空桶,最终生成一个part-000**的空文件。(使用LazyOutputFormat解决)

_SUCCESS文件,我们在跑完MR或SPARK程序时,数据输出目录一般都会有一个_SUCCESS的空文件(不是一定会产生的),这个_SUCCESS空文件代表该任务运行成功。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值