先简单介绍下HS1和HS2的主要区别:
HiveServer1:
可以看到HS的进程和MetaStore的进程是在一个虚拟机里面的,而且从图中可以看出,一个HS服务同时只能提供一个访问连接。
HiveServer2:
HS2的主要改进是把MetaStoreServer从Hiveserver中剥离出来了,形成一个单独的进程运行,而且hiveserver和metastore server可以同时服务 于多个客户端(Beeline CLI,Hive CLI,HCatalog等)。
配置Hiveserver2的访问协议,http或者tcp
<property>
<name>hive.server2.transport.mode</name>
<value>binary</value>
<description>Server transport mode.
"binary"
or
"http"
.</description>
</property>
对应http协议的访问端口
<property>
<name>hive.server2.thrift.http.port</name>
<value>
10001
</value>
<description>Port number when in HTTP mode.</description>
</property>
对应tcp协议的访问端口
<property>
<name>hive.server2.thrift.port</name>
<value>
10001
</value>
<description>Port number when in TCP mode.</description>
</property>
对应在http协议下线程池的线程数
<property>
<name>hive.server2.thrift.http.min.worker.threads</name>
<value>
5
</value>
<description>Minimum number of worker threads when in HTTP mode.</description>
</property>
<property>
<name>hive.server2.thrift.http.max.worker.threads</name>
<value>
500
</value>
<description>Maximum number of worker threads when in HTTP mode.</description>
</property>
对应在tcp协议下的线程池的线程数:
<property>
<name>hive.server2.thrift.min.worker.threads</name>
<value>
5
</value>
<description>Minimum number of worker threads when in TCP mode.</description>
</property>
<property>
<name>hive.server2.thrift.max.worker.threads</name>
<value>
500
</value>
<description>Maximum number of worker threads when in TCP mode.</description>
</property>
配置metastore server的地址
<property>
<name>hive.metastore.uris</name>
<value></value>
<description>Thrift URI
for
the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
配置异步线程池的线程数
<property>
<name>hive.server2.async.exec.threads</name>
<value>
100
</value>
<description>Number of threads in the async thread pool
for
HiveServer2</description>
</property>
配置异步线程结束的超时时间(超过这个时间HS会退出):
<property>
<name>hive.server2.async.exec.shutdown.timeout</name>
<value>
10
</value>
<description>Time (in seconds)
for
which HiveServer2 shutdown will wait
for
async
threads to terminate</description>
</property>
配置异步线程的等待超时时间(超过这个值线程会被回收)
<property>
<name>hive.server2.async.exec.keepalive.time</name>
<value>
10
</value>
<description>Time (in seconds) that an idle HiveServer2 async thread (from the thread pool) will wait
for
a
new
task to arrive before terminating</description>
</property>
<property>
<name>hive.server2.
long
.polling.timeout</name>
<value>5000L</value>
<description>Time in milliseconds that HiveServer2 will wait, before responding to asynchronous calls that use
long
polling</description>
</property>
配置请求缓冲队列的长度
<property>
<name>hive.server2.async.exec.wait.queue.size</name>
<value>
100
</value>
<description>Size of the wait queue
for
async thread pool in HiveServer2.
After hitting
this
limit, the async thread pool will reject
new
requests.</description>
</property>
|