关闭

[Hive]HiveServer2配置

标签: HiveHiveServer
1893人阅读 评论(0) 收藏 举报
分类:

HiveServer2(HS2)是一个服务器接口,能使远程客户端执行Hive查询,并且可以检索结果。HiveServer2是HiveServer1的改进版,HiveServer1已经被废弃。HiveServer2可以支持多客户端并发和身份认证。旨在为开放API客户端(如JDBC和ODBC)提供更好的支持。

这篇文章将介绍如何配置服务器端。如何使用客户端与此服务器端交互将在下篇文章中介绍。

备注

Hive 0.11版本引入. See HIVE-2935.

1. 配置

1.1 hive-site.xml中配置

hive.server2.thrift.min.worker.threads – 最小工作线程, 默认为 5.
hive.server2.thrift.max.worker.threads – 最大工作线程, 默认为 500.
hive.server2.thrift.port – 监听的TCP端口号, 默认为 10000.
hive.server2.thrift.bind.host – 绑定的TCP接口.

其他的选项可以参考 HiveServer2 in the Configuration Properties document

1.2 可选环境设置

HIVE_SERVER2_THRIFT_BIND_HOST – 绑定到的TCP host接口(可选)。覆盖配置文件设置。
HIVE_SERVER2_THRIFT_PORT – 要监听的TCP端口号(可选),默认为10000.覆盖配置文件设置。

1.3 HTTP模式运行

HiveServer2支持通过HTTP传输发送Thrift RPC消息(Hive 0.13版本开始,参见HIVE-4752)。这对于支持客户端和服务器之间需要代理时非常有用(例如,为了负载均衡或安全原因)。目前,可以在TCP模式或HTTP模式下运行HiveServer2,但不能同时运行HiveServer2。对于相应的JDBC URL,请参考:HiveServer2客户端 - JDBC连接URL。 使用以下设置启用和配置HTTP模式:

设置默认值描述
hive.server2.transport.modebinary设置为http以启用HTTP传输模式
hive.server2.thrift.http.port10001需要监听的HTTP端口
hive.server2.thrift.http.max.worker.threads500最大工作线程
hive.server2.thrift.http.min.worker.threads5最小工作线程
hive.server2.thrift.http.pathcliservice服务端点

1.4 可选的全局初始化文件

全局初始化文件可以放置在hive.server2.global.init.file.location在配置的位置(Hive 0.14开始版本,参见HIVE-5160HIVE-7497HIVE-8138)。 这可以是初始化文件本身的路径,也可以是一个名为.hiverc的初始化文件目录。

初始化文件列出了将为此HiveServer2实例的用户运行的一组命令,例如注册一组标准的jar和函数。

1.5 日志记录配置

Beeline客户端可以获取HiveServer2操作日志(Hive 0.14开始版本)。配置日志记录一些参数如下:

hive.server2.logging.operation.enabled 默认为true,表示HiveServer2将为客户端保存操作日志
hive.server2.logging.operation.log.location 如果启用此功能,则存储操作日志到顶级目录中。
hive.server2.logging.operation.verbose (Hive 0.14 到 1.1)如果为true,则可以为客户端提供HiveServer2操作日志。 在Hive 1.2.0中替换为hive.server2.logging.operation.levelhive.server2.logging.operation.level (Hive 1.2 开始版本) 可以设置HiveServer2操作日志级别

2. 如何开始

$HIVE_HOME/bin/hiveserver2

或者

$HIVE_HOME/bin/hive --service hiveserver2

2.1 使用信息

-H或--help选项显示使用消息,例如:

$HIVE_HOME/bin/hive --service hiveserver2 -H
Starting HiveServer2
usage: hiveserver2
 -H,--help                        Print help information
    --hiveconf <property=value>   Use value for given property

3. Web UI

备注

Hive 2.0.0版本引入.

HiveServer2的Web用户界面(UI)提供配置,日志记录,度量(metrics)和活动会话信息。 默认情况下,Web UI可以在端口10002(127.0.0.1:10002)上使用。

  • 可以在hive-site.xml中自定义Web UI的配置属性,其中包括hive.server2.webui.hosthive.server2.webui.porthive.server2.webui.max.threads等。
  • Hive Metrics可以通过使用Metrics Dump选项卡查看。
  • 可以使用本地日志选项卡查看日志。

该接口目前正在HIVE-12338上开发。

image

4. Python 客户端驱动程序

HiveServer2的Python客户端驱动程序可在https://github.com/BradRuderman/pyhs2 上获得(谢谢Brad)。它包括所有必需的软件包,如SASL和Thrift包装器(wrappers)。

该驱动程序已被认证可用于Python 2.6及更高版本。

要使用pyhs2驱动程序:

pip install pyhs2

然后:

import pyhs2

with pyhs2.connect(host='localhost',
                   port=10000,
                   authMechanism="PLAIN",
                   user='root',
                   password='test',
                   database='default') as conn:
    with conn.cursor() as cur:
        #Show databases
        print cur.getDatabases()

        #Execute query
        cur.execute("select * from table")

        #Return column info from query
        print cur.getSchema()

        #Fetch table results
        for i in cur.fetch():
            print i

原文:https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2




1
0
查看评论

Hive的内置服务和hiveserver/hiveserver2的比较

两者都允许远程客户端使用多种编程语言,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,连这个和都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回结果(从hive0.15起就不再支持hiveserver了)...
  • Gamer_gyt
  • Gamer_gyt
  • 2016-08-01 19:01
  • 18321

Hive学习之HiveServer2服务端配置与启动

在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允...
  • sky_walker85
  • sky_walker85
  • 2014-08-01 13:49
  • 33406

Hive的内置服务和hiveserver/hiveserver2的比较

版权声明:[+] 一:Hive的几种内置服务              执行bin/hive --service help  如下:       ...
  • qq_19244267
  • qq_19244267
  • 2016-09-01 16:55
  • 492

[Hive]HiveServer2概述

1. HiveServer1HiveServer是一种可选服务,允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果。HiveServer是建立在Apache ThriftTM(http://thrift.apache.org/) 之上的,因此有时会被称为Thrift Serve...
  • SunnyYoona
  • SunnyYoona
  • 2017-07-18 19:22
  • 1145

【Hadoop】hiveserver2 不能启动端口 10000 开启服务的相关经验总结

这个问题困扰了我三天,各种查资料踩坑填坑的尝试,终于搞定了不能链接hive2的这个问题。
  • lsttoy
  • lsttoy
  • 2016-12-06 17:41
  • 8466

HiveServer2 入门使用

Beeline – 一个新的命令行Shell HiveServer2 supports a new command shell Beeline that works with HiveServer2. It's a JDBC client that is based on the SQLL...
  • stark_summer
  • stark_summer
  • 2015-05-19 15:11
  • 29400

Hive的内置服务和hiveserver/hiveserver2的比较

一:Hive的几种内置服务              执行bin/Hive --service help  如下:       [html...
  • u013061459
  • u013061459
  • 2017-06-19 16:44
  • 496

Hive学习笔记1@Hiveserver2高可用实现

在生产环境中使用Hive,强烈建议使用HiveServer2来提供服务,好处很多: 在应用端不用部署Hadoop和Hive客户端; 相比hive-cli方式,HiveServer2不用直接将HDFS和Metastore暴漏给用户; 有安全认证机制,并且支持自定义权限校验; 有HA机制,解决应用端的并...
  • hqwang4
  • hqwang4
  • 2017-03-03 15:49
  • 2125

Hive学习之HiveServer2服务端配置与启动

在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允...
  • vfgbv
  • vfgbv
  • 2016-03-30 11:20
  • 2907

HiveServer2 Clients

HiveServer2 Clients Skip to end of metadata Created by Prasad Mujumdar, last modified by Andrew Sears on...
  • vfgbv
  • vfgbv
  • 2016-03-30 11:19
  • 1389
    个人资料
    • 访问:1517580次
    • 积分:22609
    • 等级:
    • 排名:第378名
    • 原创:624篇
    • 转载:133篇
    • 译文:60篇
    • 评论:189条
    博客专栏
    文章分类
    最新评论