先简单介绍下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> |