Impala 调优

前几天在用impala on CDH5.16.2查询数据的时候,突然遇到OOM(内存溢出)的问题,如下所示:

Impala 调优_第1张图片
经查阅资料发现,Impala的内存主要是由两个参数控制的。

mem_limit: 256M
Impala Daemon JVM Heap: 50M

Impala Daemon进程其实是由两个不同的进程组成的。一个进程是用C++写的,它主要用来执行查询语句;另外一个进程是用Java写的,它主要是用来编译执行语句和存储metadata信息。Java的进程被嵌入到C++的进程中,因此他们两个进程共享一个进程号。上述的两个内存参数:mem_limit是用来控制C++进程的内存使用量,而Impala Daemon JVM Heap是用来控制Java进程的内存使用量的。
mem_limit:表示查询内存量。
Impala Daemon JVM Heap:存储metadata信息。

解决方法:根据实际需求适当调大 mem_limit,当然两个参数的内存总量不能超过机器本身的内存。

你可能感兴趣的:(CDH,Impala)