记录使用中impala遇到的问题以及当时的解决方式,将来看一看没准有更好的处理方式~ 如果你也碰到过类似的问题,并有不同的思路,欢迎分享交流~
-
小表join – 内存溢出
一次线上作业报错,内存不够。看了下语句,特别奇怪,一个小交易量的流水关联了两张数据量较小的维表,应该是执行内存特别小的语句。explain了一下,发现预估内存居然 100g+, impala 自动调整执行顺序,具体的内存估算方式还需要待查。加了straight join,直接按照原先的join方式进行执行,变成了1 G+,顺利跑过。 -
impala 刷新元数据
公司作业运行遇到大面积报错,报错提示找不到表对应的hdfs文件。原本的架构是Impala + Hive +HDFS,因此Impala插入数据的时候涉及需要刷新元数据的操作。
查看出错的表,比较奇怪的是涉及临时表(这部分都是overwrite插入数据,不涉及任何的drop和partition操作),包括分区表的操作执行(p层表,日志也显示refresh操作正常执行)这两部分理应正常,那么中间层数据处理的时候为什么会遇到这么多读取不到hdfs文件的报错?
查看了impala的文档
INVALIDATE METADATA is an asynchronous operations that simply discards the loaded metadata from the
catalog and coordinator caches. After that operation, the catalog and all the Impala coordinators only know about
the existence of databases and tables and nothing more. Metadata loading for tables is triggered by any subsequen

本文记录了在使用Impala过程中遇到的小表JOIN导致内存溢出及元数据刷新问题。针对内存溢出,通过添加'straight join'解决了100G+内存预估问题。而在元数据刷新上,探讨了INVALIDATE METADATA与REFRESH的区别,指出REFRESH无法更新文件存储位置信息,可能引发读取HDFS文件失败的错误。
最低0.47元/天 解锁文章
9034

被折叠的 条评论
为什么被折叠?



