为了尽可能减少磁盘资源的消耗,因此需要对从Kafka到HDFS的写入数据进行数据压缩。由于使用的ETL工具是kettle,因此研究一下Kettle配置HDFS输出控件时能不能加GZIP等压缩方式?
kettle9.2的HDFS输出控件压缩方式包括GZip、Hadoop-snappy、None、Snappy、Zip等5种
在从Kafka到HDFS的kettle任务中,可以加GZip等压缩方式,这也生成了GZip格式的数据文件turnratio2023-09-12.csv.gz
由于从Kafka到HDFS的kettle任务在不停的执行,所以这个turnratio2023-09-12.csv.gz文件虽然显示有126KB,但是如果解压查看的话就会报错。
因为kettle任务一直在执行,而压缩要等任务结束之后再压缩,所以表面看数据文件是有大小的,不是空文件,但是实际文件没数据。
因此,在从Kafka到HDFS的kettle任务中,为了自动生成每日的数据文件,在HDFS输出控件中可以加GZip等压缩方式,但是不能加。
否则只要kettle任务不停,那么HDFS文件中就没数据。