您的位置:首页 > 其它

Hive学习之HiveServer2服务端配置与启动,允许远程连接

2017-11-09 09:38 387 查看
Hive有三种使用方式——CLI命令行,HWI(hie web interface)浏览器 以及 Thrift客户端连接方式。

1、hive  命令行模式

      直接输入/hive/bin/hive的执行程序,或者输入 hive –service cli 用于linux平台命令行查询,查询语句基本跟MySQL查询语句类似

2、hive  web界面的启动方式

hive –service hwi  用于通过浏览器来访问hive

如果lib目录下没有hive-hwi-{version}.war包,我们要自己打包

官网下载源码包(比如1.10版本)

解压

$ tar zxvf apache-hive-1.1.0.src.tar.gz

再进入 hwi 目录,打包 war 文件(注意命令末尾有一个点.)

#cd apache-hive-1.1.0-src/hwi
#jar cvfM0 hive-hwi-1.1.0.war -C web/ .

 打包完成后,有了我们需要的 war 文件,再复制到 $HIVE_HOME/lib 目录下

#cp hive-hwi-1.1.0.war /usr/local/hive-1.1.0/lib

另外我们还需要拷贝一个 Java 的 tools.jar 到 $HIVE_HOME/lib 目录下

cp /usr/local/jdk1.7.0_67/lib/tools.jar /usr/local/hive-1.1.0/lib

否则会出现类似于下面的错误(因为 JAVA_HOME 指到$JAVA_HOME/jre 下了,而其 lib下的 tools.jar 跟$JAVA_HOME/lib/tools.jar 不一样,编译的时候需要用到后者) 

最后我们修改hive-site.xml文件



启动hwi,命令为:   ./hive --service  hwi

如果启动没有报错,可以访问http://localhost:9999/hwi

3、jdbc远程连接hiveserver2

在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。HiveServer或者HiveServer2都是基于Thrift的,但HiveSever有时被称为Thrift

server,而HiveServer2却不会。既然已经存在HiveServer为什么还需要HiveServer2呢?这是因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供了更好的支持。

hive-site.xml的配置。因为我这里没有配置连接hive的用户名和密码,所以在我的java代码连接Hive时,不用输入用户名和密码。

先启动元数据库,在命令行中键入:hive --service metastore & 

接下来开启hiveserver2服务:

在命令行中键入:hive --service hiveserver2 &

注意查看日志是否报错。




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐