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.mode binary 设置为http以启用HTTP传输模式
hive.server2.thrift.http.port 10001 需要监听的HTTP端口
hive.server2.thrift.http.max.worker.threads 500 最大工作线程
hive.server2.thrift.http.min.worker.threads 5 最小工作线程
hive.server2.thrift.http.path cliservice 服务端点

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.level。
hive.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上开发。

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

[Hive]HiveServer2配置的更多相关文章

  1. Hadoop之Hive(2)--配置Hive Metastore

    Hive metastore服务以关系性数据库的方式存储Hive tables和partitions的metadata,并且提供给客户端访问这些数据的metastore service的API.下面介 ...

  2. hive权限配置

    基于CDH5.x的Hive权限配置 1.打开权限控制,默认是没有限制的 set hive.security.authorization.enabled=true; 2.配置默认权限 hive.secu ...

  3. Hive的配置| 架构原理

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是:将HQL转化成MapReduce程序 1)Hive处理的数据存储在HDFS 2)Hi ...

  4. [Hive]HiveServer2概述

    1. HiveServer1 HiveServer是一种可选服务,允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果.HiveServer是建立在Apache ThriftTM(http: ...

  5. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  6. 【转】 hive安装配置及遇到的问题解决

    原文来自: http://blog.csdn.net/songchunhong/article/details/51423823 1.下载Hive安装包apache-hive-1.2.1-bin.ta ...

  7. 038 关于HIVE的配置

    一:常用版本 1.版本 0.13.1 2014年 1.2.1   2015年 版本之间的区别:支持SQL不同,向关系型数据库靠拢. 目前看到的版本是2.3.2了. 2.官网 二:安装配置hive 1. ...

  8. Mac上Hive安装配置

    Mac上Hive安装配置 1.安装 下载hive,地址:http://mirror.bit.edu.cn/apache/hive/ 之前我配置了集群,tjt01.tjt02.tjt03,这里hive安 ...

  9. Hive的配置详解和日常维护

    Hive的配置详解和日常维护 一.Hive的参数配置详解 1>.mapred.reduce.tasks  默认为-1.指定Hive作业的reduce task个数,如果保留默认值,则Hive 自 ...

随机推荐

  1. ReportView 添加自动增长序号

    在显示序号的列中输入相关的值: 在此表达式的后面是Nothing,不是null,不要搞错.

  2. Loadrunder场景设计篇——定时器(schedule)

    A.   定义方案schedule 在 Scenario Schedule面板中,选择一个方案schedule,或通过点击New Schedule定义一个新的方案 定义schedule: a.新建sc ...

  3. 分支语句(switch case)

    /switch case 的应用 Console.WriteLine("1.汉堡包"); Console.WriteLine("2.薯条"); Console. ...

  4. redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表

    文中内容摘自<redis设计与实现> 简单动态字符串 1. Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态 ...

  5. kill、PKill、xkill 和killall----杀死进程

    终止一个进程或终止一个正在运行的程序,一般是通过kill .killall.pkill.xkill 等进行.比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具.另外应用的场合就是在服务器管 ...

  6. [CF489D]Unbearable Controversy of Being

    题目大意:求有向图中这种图的数量 从分层图来考虑,这是一个层数为3的图 枚举第一个点能到达的所有点,对他们进行BFS求第三层的点(假装它是BFS其实直接枚举效果一样) 代码: #include< ...

  7. MySql 查询数据库中所有表名以及对比分布式库中字段和表的不同

    查询数据库中所有表名select table_name from information_schema.tables where table_schema='数据库名' and table_type= ...

  8. Maven配置与创建

    1.下载Maven工具 从maven官网下载:https://maven.apache.org/download.cgi apache-maven-x.x.x-bin.zip ,解压到指定目录,例如D ...

  9. 深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE

    概念和区别 SELECT ... LOCK IN SHARE MODE走的是IS锁(意向共享锁),即在符合条件的rows上都加了共享锁,这样的话,其他session可以读取这些记录,也可以继续添加IS ...

  10. CTCS-2017滚粗记

    Day 0: 下午不到四点就来到了宾馆,环境好评,网速能接受,但是你给我搞了个大床房是什么玩意儿啊... 晚上看MasterJH5574大神一直在写题热身(无限崇拜),自己板子没看几眼就丢到一遍去了, ...