INFO-Impala自动同步元数据
更新时间: 2024-03-11 02:42:27
阅读 7017
INFO-impala自动同步元数据
功能说明
适用模块
impala
离线开发
具体说明
impala获取hive的元数据(自动同步),但同步失败(Impala升级到3.4版本后 截止目前没有用户反馈元数据同步失败情况),可通过在猛犸上创建 scripts 节点任务进行定时同步作为补充;
1、Impala 数据自动同步,仅支持 Hive 元数据变更或通过 Hive 引擎操作的 Hive 数据变更;直接变更 HDFS 数据文件无法做到自动同步,如直接 put 文件至 HDFS 目录或通过 SQOOP 进行数据传输至Hive 表中,此时需手工执行 refresh xxx.xxx 来触发数据同步;
2、配置参数中 SYNC_METASTORE 必须大写;
3、Hive 元数据变更(字段变更)时,可手动在 Impala 下执行 invalidate metadata xxx.xxx 手动触发同步;
4、Hive 增加分区或者分区路径下数据文件发生变更时,可在 Impala 下执行 refresh xxx.xxx 手动触发同步;
使用示例
如下所述:
1、 编写shell脚本、并下载项目keytab
① 获取项目kerberos认证信息:在猛犸项目中心中,下载项目keytab,查看项目principal。
② 编写shell脚本
#! /bin/bash
# 先进行kerberos认证
# 其中 poc.keytab 需替换为用户所在项目 keytab
# poc/dev@HADOOP.HZ.NETEASE.COM 需替换为对应项目 keytab 的 principal
kinit -kt poc.keytab poc/dev@HADOOP.HZ.NETEASE.COM
# 再通过beeline连接impala,执行sql
# jdbc 链接串需替换为用户所在集群对应jdbc 连接串
# beeline 参数说明: -u "jdbc链接串" ; -e "一条SQL" ; -f $filepath 执行一个SQL文件 ;
beeline -u "jdbc:hive2://demo1.jd.163.org:2181,demo2.jd.163.org:2181,demo3.jd.163.org:demo4/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=impala-ha/hiveserver2;principal=impala/_HOST@HADOOP2.HZ.NETEASE.COM" -e "select * from $db.table"
2、在猛犸数据开发模块,新建一个任务流,并拖入一个script节点
3、将shell文件和项目keytab上传至任务流资源信息中
4、编辑该script节点,使其调用资源信息中对应的shell脚本文件,文件路径为 ./
5、在开发模式中调试该script节点至运行成功,再将该任务流提交上线,并按照需求设置调度即可
配置自动同步
1、创建 Hive 表时直接指定该表进行元数据同步;
create table poc.demo
(id int,
name string
)
TBLPROPERTIES('SYNC_METASTORE'='on')
2、已存在Hive 表修改 tblproperties 属性,实现该表元数据同步
# Impala 引擎下执行
invalidate metadata xxx.xxx;
# Hive 下执行
ALTER TABLE POC.DEMO SET TBLPROPERTIES('SYNC_METASTORE'='on')
作者:林帅
文档反馈
以上内容对您是否有帮助?