select * from ads_visit_stats;
❝ads层的查询没有任何问题。 ❞
❝「Presto不支持parquet列式存储加lzo压缩的表的查询」 ❞
Presto-Client查询语句:
select * from dwd_start_log;
Presto-Client查询出错:
Query 20220914_021316_00014_sthct, FAILED, 2 nodes
Splits: 22 total, 0 done (0.00%)
0:01 [0 rows, 0B] [0 rows/s, 0B/s]
查看Presto-Client查询出错的日志文件:
[root@node01 presto]$ tail -500 data/var/log/server.log
信息如下:
Query 20220914_021316_00014_sthct failed: Can not read value at 0 in block -1 in file hdfs://node01:8020/warehouse/gmall/dwd/dwd_start_log/dt=2020-06-15/000001_0
vim /opt/module/presto-0.196/data/var/log/server.log
Caused by: parquet.hadoop.BadConfigurationException: Class com.hadoop.compression.lzo.LzoCodec was not found
at parquet.hadoop.CodecFactory.getCodec(CodecFactory.java:161)
at parquet.hadoop.CodecFactory.getDecompressor(CodecFactory.java:178)
at parquet.hadoop.ParquetFileReader$Chunk.readAllPages(ParquetFileReader.java:610)
at parquet.hadoop.ParquetFileReader.readNextRowGroup(ParquetFileReader.java:496)
at parquet.hadoop.InternalParquetRecordReader.checkRead(InternalParquetRecordReader.java:127)
at parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:208)
... 16 more
很明显,error显示为com.hadoop.compression.lzo.LzoCodec
没有找到
❝对接lzo压缩包的要放置在presto安装目录下的
plugin/hive-hadoop2
目录下 ❞
[root@node01 hive-hadoop2]$ cp /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-lzo-0.4.20.jar ./
[root@node01 hive-hadoop2]$ my_rsync ./hadoop-lzo-0.4.20.jar
[root@node01 presto]$ xcall.sh /opt/module/presto-0.196/bin/launcher stop
[root@node01 presto]$ xcall.sh /opt/module/presto-0.196/bin/launcher start
presto:gmall> select * from dwd_start_log
presto:gmall> select * from ods_log;
美团技术团队文章关于「Presto二次开发和BUG修复」提到:Presto不支持查询lzo压缩的数据
,需要修改hadoop-lzo的代码
❝https://tech.meituan.com/2014/06/16/presto.html ❞
解释说明
Presto是即席查询
工具,ods层
的数据含有敏感数据
和脏数据
,通常情况下,数据查询不需要对ods层查询
,对于本项目而言,即便Presto读取不了ods层数据,也影响不大。
解决方案
对于这个问题,需要修改hadoop-lzo的代码,美团的解决方案开源在Github上:
❝https://github.com/MTDATA/presto/commits/mt-0.60 ❞
❝顺利结束 ❞
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有