如何在hivemetastorelistener中检索查询字符串?

tjvv9vkg  于 2021-07-13  发布在  Hadoop
关注(0)|答案(0)|浏览(271)

我正在尝试在hivemetastore上创建一个侦听器,在这里我需要检索提交给metastore的查询。有没有办法找回查询字符串?在metatstorelistener中,我们得到如下事件 onCreate , onDelete 等等,有可能 postHook 在配置单元上,但需要将侦听器放在元存储上,以便从任何位置捕获并执行所有ddl命令有没有方法捕获元存储中的事件并将相同的事件应用到另一个并行元存储设置?
context:- i 我正试图从 1.x 版本到 3.x.x 这里的想法是在kubernetes中设置metastore服务的无状态设置。但不确定两个版本之间的查询语法是否兼容。所以我们想并行设置hot-hot-setup并监视查询结果。如果metastorelistener上有任何方法 DDL 从一个元存储到另一个元存储并同时执行的事件?

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hive.metastore.events.AlterTableEvent;
import org.apache.hadoop.hive.metastore.MetaStoreEventListener;
import org.apache.hadoop.hive.metastore.events.CreateTableEvent;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.codehaus.jackson.map.ObjectMapper;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.time.LocalDateTime;
public class HiveMetastoreListener extends MetaStoreEventListener {
    private static final Logger LOGGER = LoggerFactory.getLogger(HiveMetastoreListener.class);
    private static final  ObjectMapper objMapper = new ObjectMapper();
    private final DataProducer dataProducer = DataProducer.getInstance();
    public HiveMetastoreListener(Configuration config) {
        super(config);

    }

    /**
     * Handler for a CreateTable Event
     */
    @Override
    public void onCreateTable(CreateTableEvent tableEvent) throws MetaException{
        super.onCreateTable(tableEvent);
            try {
                String data = null;

                dataProducer.produceToKafka("metastore_topic", LocalDateTime.now().toString(), data);
            }catch (Exception e) {
                    System.out.println("Error:- " + e);
            }

    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题