引言
- 背景介绍
- 驾驶舱项目承接了线上多种实时数据,对主要的指标进了15分钟一次查询,这些统计指标对上层知道运营有重要作用。出版上线至今平台稳定运行,但日益增长的用户数量导致每日数据量不断增长,当前的集群面临严峻的处理能力和稳定性的挑战,需要调整相应的参数进行优化。
- 编写目的优化impala同步源数据功能
- 适用范围
- 甲方leader
- 运维开发人员
- 数据开发人员
- 角色职责
角色 |
职责 |
备注 |
PD |
需求提出者,发起需求评审,制定需求优先级,参与系分、测试评审; |
核心 |
设计人员 |
细分设计,制定开发计划,参与需求、测试评审 |
核心 |
运维人员 |
负责发布的执行;负责通知下游关联影响。 |
核心 |
- 其他其他需要说明的内容。
- impala参数调整前测试
2.2impala参数调整后测试
- 修改hive参数配置进入CM界面 > Hive > 配置 > 搜索 启用数据库中的存储通知(英文界面搜索:Enable Stored Notifications in Database),并且勾选,注意一定要勾选,配置后面的配置不生效。数据库通知的保留时间默认为2天,意味着如果事件通知没有更新超过2天事件将会丢失。
在 CM界面 > Hive > 配置 > 搜索 hive-site.xml 配置如下几处
hive-site.xml 的 Hive Metastore Server 高级配置代码段(安全阀)
<property> <name>hive.metastore.notifications.add.thrift.objects</name> <value>true</value> </property> <property> <name>hive.metastore.alter.notifications.basic</name> <value>false</value> </property> |
如果你想在使用Spark和其他应用程序将数据插入现有表和分区时会生成事件,需要在hive-site.xml 的 Hive 服务高级配置代码段(安全阀)以及hive-site.xml 的 Hive 客户端高级配置代码段(安全阀)添加配置
<property> <name>hive.metastore.dml.events</name> <value>true</value> </property> |
保存上述配置,并重启Hive 是配置生效,可以在webui 界面确认参数是否生效
- 修改impala参数配置然后在CM > Impala > 配置 > 搜索 catalog 命令行参数 添加如下配置,注意前面为两个英文中划线符号。
--hms_event_polling_interval_s=2 |
该参数表示启用hms 滚动事件功能并以秒为单位设置轮询频率,建议该值小于5秒,参数默认值为0 ,表示不启用。配置该参数前需要确认hive-site.xml 的 Hive Metastore Server 高级配置代码段(安全阀)的配置已经生效,否则重启impala 时,Catalog Server 将无法正常启动。
- 功能验证
- Hive中创建数据库,表
CREATE database hive_auto_impala; create table if not exists hive_auto_impala.student(id int,name string,gender string, age int); insert into hive_auto_impala.student values(1,'xiaodou','B',28); select * from hive_auto_impala.student; |
- 查看impala表
- 非生产环境测试结果
- Impala现有环境介绍
3.1现有集群规模
17个impalad节点 ,分配内存1.9T
3.2调参缘由
impala无法感知通过hive修改的源数据变化。
3.3离线数仓线上impala配置情况
当前未配置自动刷新操作,需要手动执行Invalidate/Refresh Metadata,同步源数据信息。
- 操作描述