博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive并发调用的运行方式-个人经验篇 - ggjucheng - 博客园
阅读量:7081 次
发布时间:2019-06-28

本文共 789 字,大约阅读时间需要 2 分钟。

前言

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

转载地址:http://ygoml.baihongyu.com/

你可能感兴趣的文章
如何设置ASP.NET页面的运行超时时间 (转载)
查看>>
Android混合开发之WebView与Javascript交互
查看>>
进入某页面之后,菜单栏中的菜单和功能消失了
查看>>
接口和抽象类的作用以及区别
查看>>
python 列表(list)去除重复的元素总结
查看>>
Linux查看CPU信息
查看>>
python logging模块 basicConfig配置文件
查看>>
STL iterator和reverse_iterator
查看>>
es-hadoop saveToEsWithMeta
查看>>
maven 加入json-lib.jar 报错 Missing artifact net.sf.json-lib:json-lib:jar:2.4:compile
查看>>
INFO: task java:27465 blocked for more than 120 seconds不一定是cache太大的问题
查看>>
解决首次访问jenkins,输入默认密码之后,一直卡住问题
查看>>
andorid 开放工具集合
查看>>
window下rabbitmq的配置问题
查看>>
YOCTO
查看>>
Apache Beam 传 大数据杂谈
查看>>
PHP CURL POST提交
查看>>
java FTP 上传下载删除文件
查看>>
安全测试robots
查看>>
关于ArrayList的5道面试题
查看>>