hive并行执行,hive命令行操作

  hive并行执行,hive命令行操作

  蜂巢并发调用运营模式-亲身体验-gg jucheng-博客花园

  前言使用hive,很多情况下我们会并发调用hive程序,将sql任务转换成mapreuce,提交给hadoop集群。在使用hive的过程中,我发现并发调用hive有几个问题。我将与你分享这个。

  默认情况下,配置单元安装在文本中。hive使用derby内存数据库保存hive的元数据,所以不能并发调用hive。需要配置为使用mysql保存hive的元数据。

  要运行hive,您可以有以下访问方法:

  1.hiveserver:hive作为thrift服务的服务器运行,允许不同语言编写的客户端访问,通过thrift、jdbc、odbc连接器、hive服务器与hive进行通信。这种方法非常适合java程序员通过jdbc接口访问hive。但是实际操作中,发现并发调用时,hiveserver很容易无故宕机,而且没有jvm的转储文件,Hiveserver的程序没有输出。

  2.metastore:

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

  2.2.远程metastore:通过将hive.metastore.local配置为false,并让metastore作为单独的进程运行,hive客户端必须连接到远程metastore才能执行其任务。但是在实际操作中,远程metastore很容易无缘无故宕机,也没有jvm的转储文件,远程metastore程序也没有输出。

  总结一下我个人的经验,如果需要并发调用hive,首先要把hive的元数据配置成mysql数据库。最好通过嵌入metastore来调用hive。通过执行$ hive _ home/bin/hive-s-e hive SQL ,从管道中获取hive的输出是最稳定、最安全的方式。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: