#数据#0757-6.3.3-如何配置impala自动同步HMS元数据

在之前的文章中,Fayson 在《0718-6.3.0-CDH6.3的新功能》 中提到Impala 的 Automatic Invalidate/Refresh Metadata 新功能,本文主要介绍如何配置Impala基于事件自动同步HMS元数据。

  • 测试环境
1.CM和CDH版本为6.3.3
2.操作系统版本为RedHat 7.2
操作步骤
进入CM界面 > Hive > 配置 > 搜索 启用数据库中的存储通知(英文界面搜索:Enable Stored Notifications in Database),并且勾选,注意一定要勾选,配置后面的配置不生效。数据库通知的保留时间默认为2天,意味着如果事件通知没有更新超过2天事件将会丢失
 #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

在 CM界面 > Hive > 配置 > 搜索 hive-site.xml 配置如下几处
 #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

hive-site.xml 的 Hive Metastore Server 高级配置代码段(安全阀)
hive.metastore.notifications.add.thrift.objects true hive.metastore.alter.notifications.basic false 如果你想在使用Spark和其他应用程序将数据插入现有表和分区时会生成事件,需要在hive-site.xml 的 Hive 服务高级配置代码段(安全阀)以及hive-site.xml 的 Hive 客户端高级配置代码段(安全阀)添加配置
 #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

hive.metastore.dml.events true 保存上述配置,并重启Hive 是配置生效,可以在webui 界面确认参数是否生效
 #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

 #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

然后在CM > Impala > 配置 > 搜索 catalog 命令行参数 添加如下配置,注意前面为两个英文中划线符号。
 #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

--hms_event_polling_interval_s=2 该参数表示启用hms 滚动事件功能并以秒为单位设置轮询频率,建议该值小于5秒,参数默认值为0 ,表示不启用。配置该参数前需要确认hive-site.xml 的 Hive Metastore Server 高级配置代码段(安全阀)的配置已经生效,否则重启impala 时,Catalog Server 将无法正常启动。
验证配置是否生效可以在Catalog Server WebUI 界面中 /varz 下查看
 #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

功能验证
使用beeline 进入hive 中创建一个库,并查看
[root@cdh1 ~]# beeline beeline> !connect jdbc:hive2://cdh2.hadoop.com:10000/ 0: jdbc:hive2://cdh2.hadoop.com:10000/> show databases; 0: jdbc:hive2://cdh2.hadoop.com:10000/> create database test; 0: jdbc:hive2://cdh2.hadoop.com:10000/> show databases;  #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

在Impala 中查看,显示已及时更新
[root@cdh1 ~]# impala-shell -i cdh1.hadoop.com -d default [cdh1.hadoop.com:21000] default> show databases;  #数据#0757-6.3.3-如何配置impala自动同步HMS元数据
文章图片

create table测试
0: jdbc:hive2://cdh2.hadoop.com:10000/> use test; 0: jdbc:hive2://cdh2.hadoop.com:10000/> create table test1(a string); 0: jdbc:hive2://cdh2.hadoop.com:10000/> create table test1(a string); 0: jdbc:hive2://cdh2.hadoop.com:10000/> show tables;


推荐阅读