#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
version from dynamic service discovery
-H,--help Print help information
--hiveconf
四、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。
#