• hive并发调用的运行方式个人经验篇 ggjucheng 博客园


    hive并发调用的运行方式-个人经验篇 - ggjucheng - 博客园

    前言

    使用hive,我们很多情况下会并发调用hive程序,将sql任务转换成mapreuce提交到hadoop集群中,而在本人使用hive的过程中,发现并发调用hive有几个问题,在这个和大家分享下.

    正文

    默认安装hive,hive是使用derby内存数据库保存hive的元数据,这样是不可以并发调用hive的,需要配置为使用mysql保存hive的元数据。

    运行hive,可以有以下访问方式:

    1.hiveserver:hive以thrift服务的服务器形式运行,允许不同的语言编写客户端进行访问,通过thrift,jdbc,odbc连接器和hive服务器与hive通信,这种方式很适合java编程人员通过jdbc接口去访问hive,但是在实践中,发现并发调用时,很容易出现hiveserver无故宕机,没有jvm的dump文件,hiveserver的程序也毫无输出。

    2.metastore:

    2.1.内嵌metastore:默认情况下,metastore和hive是运行在同一个进程里,这种方式经过测试,在并发中是最稳定的,使用这种方式,暂时没有出现问题。

    2.2.远程metastore:通过配置hive.metastore.local为false,让metastore作为一个单独的进程运行,hive客户端都要连接远程metastore才能执行任务,但是在实践中,一样很容易出现远程metastore无故宕机,同样没有jvm的dump文件,远程metastore程序也毫无输出。

    总结

    个人经验,如果需要并发调用hive,首先要配置hive的元数据为mysql数据库,最好是通过内嵌metastore的方式去调用hive,通过执行 $HIVE_HOME/bin/hive -S -e "<hive sql>",再从管道获取hive的输出,是本人觉得最稳定安全的方式。

  • 相关阅读:
    quart源码阅读(一)
    Python poll IO多路复用
    Python select IO多路复用
    谁才是真正的垃圾:判断对象的可触及性
    Java的四种引用之强弱软虚
    JVM的基本结构及其各部分详解(二)
    JVM的基本结构及其各部分详解(一)
    java面试笔试题收集
    看懂Class文件的装载流程
    java单例模式
  • 原文地址:https://www.cnblogs.com/lexus/p/2697338.html
Copyright © 2020-2023  润新知