hiveserver简介:

这个可以让Hive以提供Trift服务的服务器形式来运行,可以允许许多不同语言编写(C python java)的客户端进行通信。使用需要启动HiveServer服务以和客户端联系,我们可以通过设置HIVE_PORT环境变量来设置服务器所监听的端口号,在默认的情况下,端口为10000。可以通过下面方式来启动

HiveServer:bin/hive --service hiveserver2 &


hiveServer/HiveServer2的简单概述:
       1:简单介绍     
        两者都允许远程客户端使用多种编程语言,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,连这个和都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回结果(从hive0.15起就不再支持hiveserver了),但是在这里我们还是要说一下hiveserver
       HiveServer或者HiveServer2都是基于Thrift的,但HiveSever有时被称为Thrift server,而HiveServer2却不会。既然已经存在HiveServer,为什么还需要HiveServer2呢?这是因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供更好的支持。
       2:两者的区别
       Hiveserver1 和hiveserver2的JDBC区别: 
  version        Connection URL                    Driver Class 
HiveServer2     jdbc:hive2://:               org.apache.hive.jdbc.HiveDriver
HiveServer1     jdbc:hive://:              org.apache.hadoop.hive.jdbc.HiveDriver


=========================hive-site.xml中的简单配置=========================================

<--!2157行-->
<property>
  <name>hive.server2.long.polling.timeout</name>
  <value>5000</value>
</property>


<--!2170行-->
<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
</property>


<--!2177行-->
<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>bigdata.ibeifeng.com</value>
</property>


=========================在mysql中新建用户供hiveserver登录(等同于操作hdfs的用户名和密码)============

//创建用户(user01是主机名,hadoop.beifeng.com是用户名)
CREATE USER 'user01'@'hadoop.beifeng.com' IDENTIFIED BY '123456';


//为新建用户授权访问hive在mysql的hive的元数据的数据库
GRANT ALL ON metastore.* TO 'user01'@'hadoop.beifeng.com' IDENTIFIED BY '123456'; 
GRANT ALL ON metastore.* TO 'user01'@'%' IDENTIFIED BY '123456';


//刷新授权
flush privileges;


=========================beeline的简单使用========================================================

启动hiveserver2
bin/hive --service hiveserver2  //前台命令,会驻留到控制台
可以使用如下命令将前台转后台
bin/hive --service hiveserver2 & //前台转后台,启动完成,按回车可以继续进行其他操作


使用如下命令确认hiveserver2进程是否启动成功
netstat -antp | gerp 10000   

$ bin/beeline进入数据库
beeline>!connect jdbc:hive2://bigdata.ibeifeng.com:10000

=====================================BYEBYE=======================================================