CDH配置impala自动同步HMS元数据
1、进入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 客户端高级配置代码段(安全阀)添加配置
保存上述配置,并重启Hive 是配置生效,可以在webui 界面确认参数是否生效
修改前:
修改生效后:
然后在CM > Impala > 配置 > 搜索 catalog 命令行参数 添加如下配置,注意前面为两个英文中划线符号。
该参数表示启用hms 滚动事件功能并以秒为单位设置轮询频率,建议该值小于5秒,参数默认值为0 ,表示不启用。配置该参数前需要确认hive-site.xml 的 Hive Metastore Server 高级配置代码段(安全阀)的配置已经生效,否则重启impala 时,Catalog Server 将无法正常启动。
验证配置是否生效可以在Catalog Server WebUI 界面中 /varz 下查看
2、功能验证
使用beeline 进入hive 中test库下创建表testimpala,并查看
在impala 中查看
在日常使用如Hive和Spark之类的工具来处理Hive表中的原始数据时,会生成新的HMS元数据(数据库、表、分区)和文件系统元数据(现有分区/表中的新文件)。在以前的Impala版本中,为了获取最新元数据信息,Impala需要手动执行INVALIDATE 或者 REFRESH 命令。随着impala 功能的不断完善,impala 的元数据同步问题终于在impala3.2得到有效的解决,并且该配置在CDP7.0.3中默认已经集成。