团队成员在做存储时遇到一个问题,在hdfs目录写了数据后,使用hive外部表挂载,挂载的目录如下/datamart-kafka-compare-OUT/datamart_kafka_compare_OUT/T_626

而实际在T_626目录下还不是文件,还是目录(忽略红框这条,这条是后来从子目录拷贝出来的),如此在presto查询时,使用count查出来数据为0,而hive查询可以查出数据。

presto查询略过,数据为0

hive查询结果

为了测试是否是无法读取子目录的问题,把红框这个文件拷贝到表的根目录,再查询,确实有数据了

那么可以判断就是presto无法读取子目录数据的问题了。赶紧网上查找资料,很巧,没查几分钟就出现了类似答案

https://github.com/prestodb/presto/issues/1285

对于presto是否读取子目录有一个配置hive.recursive-directories=true,默认为false,需要显式设置到hive.properties

重启presto,再查询,成功!

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐