`
乡里伢崽
  • 浏览: 111922 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CouderaHadoop中hive的Hook扩展

    博客分类:
  • hive
 
阅读更多
最近在做关于CDH4.3.0的hive封装,其中遇到了很多问题!其中最困难的是如何在不更改源代码的情况下动态获取jobId!

    在项目进行的过程中,我们尝试了很多方式!在尝试的过程中虽然也有很多失败,但对于理解hive的内部机制也更一步的认识,我这里想说的是自定义扩展hook!

    在CDH版本的hive中提供了很多hook,俗称钩子函数!这样我们可以通过自定义hook,来对hive进行扩展!这里我就不对hive的执行原理进行赘述了,网上的资料一堆一堆的!中间过程也相当复杂!

    这里我大致描述下hive中的一种hook扩展(org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext),其他的扩展方式基本上都大同小异!

    在此之前我们要先大致清除下hive的执行流程,其中的核心类org.apache.hadoop.ql.Driver类是实际执行hive语句的类,其中核心方法之一有run(cmd),这里的cmd实际就是我们要执行的sql语句了!我们根据ExecuteWithHookContext扩展的hook也是在此方法的前后进行执行!这里我介绍的是如何扩展前置钩,也就是在run(cmd)方法执行之前(hive语句会经过编译优化等步骤生成MapReduce任务,这里还未提交MapReduce任务)

    下面说说该如何进行扩展(这里用的maven构建工具):

    1:自定义一个类实现ExecuteWithHookContext接口

            Hclass MyPreHook implements ExecuteHookContext{

                public void run(HookContext hookContext) throws Exception{

                    //这里我们可以做自己想做的事情,比如拿到SessionState、QueryPlan等,获取各种信息

                }

            }

    2:将上面的自定义hook打成jar包,放置到hive的lib目录下

    3:关键的一步,修改hive-site.xml文件,增加如下配置

        <property>

            <name>hive.exec.pre.hooks</name>

            <value>自定义hook完整类名</value>

        </property>

    4:重启hive(各种方式有所不同,我都是采用hiveserver进行操作,所以我是先kill掉hiveserver服务再启动)

    5:然后再执行hive语句,我们自定义的hook就能自动执行了!

   注:常见问题

        (1):hive启动过程中,出现无法找到自定义的hook!这里可以尝试将扩展jar包添加到Hive的classpath下,可以通过修改hive-env.sh文件实现!
分享到:
评论

相关推荐

    atlas hive hook 编译依赖 apache-atlas-1.2.0-hive-hook.tar.gz

    3. **审计日志**:所有通过 Hive Hook 进行的操作都会被记录在审计日志中,这有助于满足法规遵从性和内部审计需求。 4. **数据分类与标签**:Apache Atlas 支持自定义数据分类和标签,Hive Hook 可以自动应用这些...

    apache-atlas-2.0.0-hive-hook ,亲测有用!

    在Apache Atlas 2.0.0 版本中,Hive Hook 是一个重要的组件,用于集成Apache Atlas 和 Apache Hive,实现对Hive 数据操作的实时监控和元数据管理。 Apache Hive 是一个基于Hadoop 的数据仓库工具,可以将结构化的...

    基于hive Hook的hive原数据调整

    - **配置 hive.conf.validation**:在高级配置 hive-site 中,新增 `hive.conf.validation|hive.hook.open`。 - **自定义 hive-site 配置**:设置 `hive.conf.validation=false` 和 `hive.hook.open=true`。 6. *...

    apache-atlas-2.1.0-hive-hook.tar.gz

    Apache Atlas 的 Hive Hook 是一个关键组件,它允许 Atlas 直接与 Apache Hive 进行交互,实现在 Hive 操作中自动捕获元数据信息,并将其存储到 Atlas 的元数据仓库中。这使得数据治理过程更加自动化,尤其是在大...

    Atlas Spark SQL血缘分析,Hive Hook

    与Hive的集成使得Spark SQL可以访问Hive Metastore中的表和分区,进一步增强了Spark的灵活性和可扩展性。 Apache Atlas的Hive Hook是在Hive执行器中插入的一个组件,它能够在Hive操作执行前后捕获元数据变更信息,...

    atlas配置hive hook

    5. **添加 Hive 第三方依赖**:为了使 Hive Hook 正常工作,可能需要在 Hive 的辅助库目录 `$HIVE_HOME/auxlib` 中添加或删除特定的依赖包,如 `elasticsearch-hadoop-hive-7.1.0.jar` 和 `hive-kudu-handler-1.10.0...

    编译好的Atlas服务和HIVE-hook

    标题中的“编译好的Atlas服务和HIVE-hook”指的是Apache Atlas的一个特定版本,即2.1.0,以及与其相关的Hive Hook组件。Apache Atlas是Apache软件基金会的一个开源项目,它是一个元数据管理系统,主要用于大数据环境...

    apache-atlas-2.0.0-hive-hook.tar.gz

    2. **Hive集成**:在Apache Atlas中,Hive Hook是一个关键组件,它允许在Hive操作(如创建表、插入数据、更新数据等)发生时自动捕获元数据并将其记录到Atlas中。这确保了元数据的实时性和完整性,便于数据分析师和...

    apache-atlas-2.0.0-SNAPSHOT-hive-hook.tar.gz

    在实际使用中,你需要将这个Hive Hook部署到你的Hive服务器上,并配置相应的Atlas和Hive连接信息。一旦部署成功,所有的Hive操作都会被自动记录在Apache Atlas中,从而实现全面的数据治理和管理。这对于大数据环境的...

    apache-atlas-2.2.0-hive-hook.tar.gz

    2. **数据血缘追踪**:通过集成 Hive Hook,当用户在 Hive 中执行 DDL 或 DML 操作时,Atlas 可以跟踪数据的来源和去向,这对于理解和分析数据的生命周期至关重要。 3. **分类和标签**:Apache Atlas 允许用户定义...

    apache-atlas-2.3.0-hive-hook.tar.gz

    apache-atlas-2.3.0-hive-hook.tar.gz Apache Atlas 框架是一组可扩展的核心基础治理服务,使企业能够有效且高效地满足 Hadoop 内的合规性要求,并允许与整个企业数据生态系统集成。这将通过使用规范和取证模型、...

    hive集成atlas的hive-hook编译包

    hive集成atlas的hive-hook编译包

    HIVE安装及详解

    * 扩展性:HIVE具有高可扩展性,可以处理大规模数据,而传统数据库的扩展性较差 HIVE数据存储 HIVE数据存储主要使用Hadoop分布式文件系统(HDFS),它可以存储大量数据。 HIVE安装部署 HIVE安装部署主要包括以下...

    大数据之Hive官方文档简要翻译(中文文档)

    在Hive的核心组件中,元存储(Metastore)扮演着至关重要的角色,它是Hive与数据之间的重要桥梁,存储了所有表和分区的元数据。 元存储是Hive用来存储关于表和分区信息的地方,如表结构、列信息、分区信息等。这些...

    apache-atlas-2.2.0-falcon-hook.tar.gz

    Hive Hook 是 Atlas 与 Hive 交互的一种方式,当用户在 Hive 中执行 DDL(数据定义语言)操作时,如创建表、分区,这个钩子会自动将这些变更同步到 Atlas 的元数据中心,保持元数据的实时更新。这增强了对 Hive 数据...

    apache-atlas-2.3.0-hbase-hook.tar.gz

    apache-atlas-2.3.0-hbase-hook.tar.gz Apache Atlas 框架是一组可扩展的核心基础治理服务,使企业能够有效且高效地满足 Hadoop 内的合规性要求,并允许与整个企业数据生态系统集成。这将通过使用规范和取证模型、...

    大数据分析仓库Hive存储结构扩展的设计和实现.caj

    大数据分析仓库Hive存储结构扩展的设计和实现.

    如何在python中写hive脚本

    在Python中编写Hive脚本主要是为了方便地与Hadoop HIVE数据仓库进行交互,这样可以在数据分析和机器学习流程中无缝地集成大数据处理步骤。以下将详细介绍如何在Python环境中执行Hive查询和管理Hive脚本。 1. **直接...

Global site tag (gtag.js) - Google Analytics