impala参数之‘impala.disableHmsSync‘=‘true‘

参考文章 https://cloud.tencent.com/developer/article/2007738

impala官方文档  https://impala.apache.org/docs/build/impala-3.4.pdf https://impala.apache.org/docs/build/impala-3.4.pdf

第657-658页

这个参数什么用,顾名思义就是禁止hms数据同步,具体表现是什么呢?为什么要设置呢,该怎么设置呢。一起学习下。

首先我们要了解impala和hive的关系

简单来说impala只是一个数据读取和处理的工具,具体就是读取hdfs表目录下的文件,放到内存里解析(个人理解)。这里存在一个什么问题呢?理论上hive里所有的表和数据都可以通过impala去读取,因为impala基于内存的读取的非常快,但同时页很消耗内存,关键是hive的元数据信息不一定及时同步到impala

1.为什么设置这个参数?

因为不是所有的表都需要通过impala的,大部分是一些结果表,每天更新的一些维表,需要作为报表每天都会有数据更新,这种数据才是真的impala处理的。大部份表其实都不需要,比如你新建了一个test表,只是自己在hive坐下测试,根本不需要通过impala实时查询。但问题的关键就在于这里,impala默认读取所有的表,表的数据越来越多,有时候会读取就会出现问题,所以解决。

直接开测

CREATE DATABASE odsccdata WITH DBPROPERTIES ('impala.disableHmsSync'='true');

desc database extended odsccdata;

CREATE DATABASE cc_test

desc database extended cc_test

建表

create table odsccdata.test1(id int );

create table cc_test.test1(id int );

impala查询

select * from cc_test.test1  -- 直接查看

select * from cc_test.test1  -- 无法查看

invalidate metadata odsccdata.test1 --手动刷新

select * from odsccdata.test1 

上面的实验可以看到 如果我们将db设置为disablehmssync之后,所建的表不会被impala采集信息了,需要手动去刷新,这样减少了impala的工作量,肯定能提高效率。

还有的参数可以设置

hms_event_polling_interval_s  设置这个间隔 官方建议设置小于5s

hms_event_polling_interval_s flag set to a positive integer to enable the feature and set the polling
frequency in seconds. We recommend the value to be less than 5 seconds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值