美文网首页
hive的metastore listener中使用hibern

hive的metastore listener中使用hibern

作者: 以梦为马驾驾驾 | 来源:发表于2021-12-23 11:13 被阅读0次

    hive版本:2.3.9, 定义一个meta store listener jar包, 用来检测ddl数据的变化,随后持久化到db里, 为什么用hibernate4, 本来用5的,但是5需要jboss 3.3 以上才能工作,但是hive2.3.9中已经有3.13了,上线后无法正常工作, 所以只能用4了.

    关于hibernate中的connection和session的关系,看别人的回答:
    https://www.cnblogs.com/hadoop-dev/p/8276601.html

    关于c3p0的小坑, 参考:
    https://www.jianshu.com/p/490a956f7624

    hibernate.c3p0.idle_test_period: 每过多久检测一下,连接是否alive, 不是的话, 丢掉这个connection.
    hibernate.c3p0.testConnectionOnCheckout: 每次从池子中取出连接,使用前检测一下是否可用.

    hibernate在使用默认的日志级别的时候,会在每条sql后发送一条show warnings, 有的db会限制一个事务的sql语句条数, 当超出后会:

    SQL Error: 1105, SQLState: HY000
    statement count 5001 exceeds the transaction limitation, autocommit = false
    

    而且还会降低一些性能, 所以参考https://stackoverflow.com/questions/30926597/why-is-show-warnings-query-issued-here-jpa-hibernate-mysql的意见:
    添加了Log4j2.xml , 提高了日志级别, 从而去掉show warnings的sql.

    <Configuration status="INFO">
        <Loggers>
            <!--        this is for disable sql: show warning; to db-->
            <logger name="org.hibernate" level="info"/>
            <logger name="org.hibernate.engine.jdbc.spi" level="error"/>
            <logger name="org.hibernate.engine.internal" level="error"/>
        </Loggers>
    </Configuration>
    

    相关文章

      网友评论

          本文标题:hive的metastore listener中使用hibern

          本文链接:https://www.haomeiwen.com/subject/mejhqrtx.html