Hive-ThiftServer-hiveserver2

#hiveserver2对应的hdfs://hdfscluster/path其中hdfscluster不能写成hdfs-cluster,中间不能有- 号;

#否则可能导致java.net.UnKnownHostException: hdfs-cluster这样的异常出现。

一、Hive-ThiftServer介绍

1.正常的hive仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。使用jdbc协议连接hive的thriftserver服务器

2.可以实现远程访问

3.可以通过命令链接多个hive

二、Hive-ThiftServer启动

启动hive的thriftServer即启动hiveserver2服务

方式1: hiveserver2命令直接启动ThriftServer

$cd $HIVE_HOME
$nohup bin/hiveserver2  1>./log/hiveserver2.log  2>./log/hiveserver2.err &   后台启动

#默认启动非后台启动,需要开另外一个终端,端口号为10000

方式2: hive --service命令启动hiveserver2服务

$cd $HIVE_HOME
$bin/hive --service hiveserver
$bin/hive --service hiveserver2  方式启动
$nohup bin/hive --service hiveserver2 &   后台启动

三、Hive-ThriftServer查看帮助

$bin/hive --service hiveserver --help
$bin/hive --service hiveserver2 --help

#usage: hiveserver2
    --deregister   Deregister all instances of given
                                  version from dynamic service discovery
    -H,--help                        Print help information
    --hiveconf     Use value for given property

四、Hive-ThriftServer附加配置

0. 可以在hive-site.xml文件中配置,也可以在hiveserver2命令后通过--hiveconf 传入配置:

--hiveconf hadoop.proxyuser.root.hosts=*
--hiveconf hadoop.proxyuser.root.groups=*
--hiveconf hive.server2.webui.port=10002 
--hiveconf hive.server2.thrift.port=10000
--hiveconf hive.root.logger=INFO,console

1. hiveserver2服务允许在配置文件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绑定的主机,默认为localhost。

也可以设置环境变量HIVE_SERVER2_THRIFT_BIND_HOST和HIVE_SERVER2_THRIFT_PORT覆盖hive-site.xml设置的主机和端口号。

2. 从Hive-0.13.0开始,HiveServer2支持通过HTTP传输消息,该特性当客户端和服务器之间存在代理中介时特别有用。与HTTP传输相关的参数如下:

hive.server2.transport.mode – 默认值为binary(TCP),可选值HTTP。
hive.server2.thrift.http.port– HTTP的监听端口,默认值为10001。

hive.server2.thrift.http.path – 服务的端点名称,默认为 cliservice。hive.server2.thrift.http.min.worker.threads– 服务池中的最小工作线程,默认为5。hive.server2.thrift.http.max.worker.threads– 服务池中的最小工作线程,默认为500。

3. 为了防止非加密模式下的内存泄露,可以通过设置下面的参数为true禁用文件系统的缓存:

fs.hdfs.impl.disable.cache – 禁用HDFS文件系统缓存,默认值为false。
fs.file.impl.disable.cache – 禁用本地文件系统缓存,默认值为false。

4. 默认情况下,HiveServer2以提交查询的用户执行查询(true),如果hive.server2.enable.doAs设置为false,查询将以运行hiveserver2进程的用户运行。

hive.server2.enable.doAs  默认值为true

5. HDFS文件系统相关的参数

fs.hdfs.impl.disable.cache – 禁用HDFS文件系统缓存,默认值为false,
fs.file.impl.disable.cache – 禁用本地文件系统缓存,默认值为false。 

#

你可能感兴趣的:(Hive-ThiftServer-hiveserver2)