前言
Impala一直是我们各个业务使用的重点,但是在Impala的使用上感觉一直不是很成熟,比如说 invalidate metadata
操作,到底什么时候该使用-r参数,什么时候不使用,什么时候可以用refresh代替,什么时候不可以,这一直是一个问题。因此有了这次的测试。
这次的测试目的就是为了对Impala的元数据方面的使用进行一个彻底的测试,给出一个比较明确答复。在最大的成都上来减缓Impala集群的压力。
测试准备
本次测试,分为外表和内表,分别对表和分区进行各种操作,然后记录不同的操作是否需要使用-r或者refresh。
测试主要在三台机器上进行,一台进行各种数据操作,另两台进行数据查询操作。
其中invalidate metadata tablename
和refresh tablename
随机在各台机器上进行测试。
测试详情
下面就是测试详情。比较容易理解,不再解释。
结论
测试的结果比较出乎意料,比较简单的一个结论就是,除了对hdfs进行操作外,只要通过impala的命令执行的数据修改,一律不需要进行元数据的同步工作,这就意味着,基本上所有脚本的-r
参数都可以删除,查询语句的时候也不需要使用-r参数,如果害怕数据过期,那么断开重新连接即可。
注意: