首页IT科技hive并行执行sql脚本(hive并发调用的运行方式个人经验篇 ggjucheng 博客园)

hive并行执行sql脚本(hive并发调用的运行方式个人经验篇 ggjucheng 博客园)

时间2025-09-19 10:21:53分类IT科技浏览5920
导读:前言...

前言

使用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的输出                     ,是本人觉得最稳定安全的方式                        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
消息提示插件(支持插件的消息中间件【msg broker with plugin】 知然 博客园)