1、hiveserver2简介
Hiveserver2简称hs2,它是一个允许多客户端并发连接的hive服务,客户端可通过jdbc、odbc方式去连接此服务操作hive。
之前的hive启动的窗口,纯粹是一个客户端,exit退出后hive就停止了。
2、启动hiveserver2
cd ~/app/hive-1.1.0-cdh5.7.0/bin/ #进入hive安装目录
./hiveserver2 #启动hiveserver2 ,我这里是前台启动,正常是后台nohup启动
3、使用beeline连接hive
beeline -u jdbc:hive2://hadoop002:10000/default -n hadoop
# -u, 必选,指定hive的连接串,默认是10000端口,使用default数据库
#-n,必选,指的是hiveserver2所在机器的用户名,非数据库用户名,我没指定启动的hs2用户名,报因权限连接不上问题。
#连接hive不需要指定账号密码,没那概念。
!quit #退出beeline客户端
扩展1 :生产中除了使用hiveserver2+beeline方式操作hive外,有的采用 thriftserver+beeline方式操作hive,thriftserver 是hiveserver的别称。HiveServer和HiveServer2都是基于Thrift的,但是HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。
扩展2:thrift简介:Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过IDL(Interface Definition Language,接口定义语言)来定义RPC(Remote Procedure Call,远程过程调用)的接口和数据类型,然后通过thrift编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。即Thrift搭建的服务能够实现多语言访问,thrift底层数据交互协议走的是RPC协议。