问题导读:

1、Hive提供了哪三种用户访问接口?

2、如何手动构建hive-hwi-*.war安装包?

3、hwi 服务启动命令是什么?

4、hwi启动之前需要将哪两个包拷贝到hive安装目录的lib中?

5、使用hwi Web访问Hive数据库之前,需要首先启动哪个服务?

6、hwi的默认监听端口是?

Hive提供了三种用户接口:CLI、HWI和客户端方式。其中最常用的的就是CLI,CLI启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。 HWI是通过浏览器访问Hive。本文介绍Hive Web访问接口。

HWI是Hive Web Interface的简称,我使用的Hive的版本是Hive0.13.1。

一、终端启动HWI服务

[hadoopUser@secondmgt conf]$ hive --service hwi
ls: cannot access /home/hadoopUser/cloud/hive/apache-hive-0.13.1-bin/lib/hive-hwi-*.war: No such file or directory
15/01/09 15:49:35 INFO hwi.HWIServer: HWI is starting up
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.reduce.tasks.speculative.execution is deprecated. Instead, use mapreduce.reduce.speculative
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.min.split.size.per.node is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.node
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.min.split.size.per.rack is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.rack
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize
15/01/09 15:49:35 INFO Configuration.deprecation: mapred.committer.job.setup.cleanup.needed is deprecated. Instead, use mapreduce.job.committer.setup.cleanup.needed
15/01/09 15:49:35 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
15/01/09 15:49:35 INFO mortbay.log: jetty-6.1.26
15/01/09 15:49:35 INFO mortbay.log: Started SocketConnector@0.0.0.0:9999

由上可知,我们使用hive --service hwi在终端启动HWI服务,但是开始报了异常错误,hive-hwi-*.war包不存在。

        注意:报错误的原因是,Hive目前的发行包里没有hwi的war包文件,这个问题在0.13和0.14上都存在,没有这个war包就不能启动hwi服务。

  解决办法:从源码手动build出这个war包,具体过程如第二步。

二、手动构建Hive hwi war包

        1、从Hive官网下载Hive对应版本的源码apache-hive-0.13.1-src.tar.gz,下载后解压,并进入hwi目录中。hwi目录下的web目录就是HWI的web界面目录,如下:

[hadoopUser@secondmgt Downloads]$ tar -zxvf apache-hive-0.13.1-src.tar.gz
[hadoopUser@secondmgt hwi]$ pwd
/home/hadoopUser/Downloads/apache-hive-0.13.1-src/hwi
[hadoopUser@secondmgt hwi]$ jar cvfM0 hive-hwi-0.13.1.war -C web/ .
adding: navbar.jsp(in = 1345) (out= 1345)(stored 0%)
adding: session_remove.jsp(in = 2359) (out= 2359)(stored 0%)
adding: session_kill.jsp(in = 2236) (out= 2236)(stored 0%)
adding: show_database.jsp(in = 2346) (out= 2346)(stored 0%)
adding: session_list.jsp(in = 2298) (out= 2298)(stored 0%)
adding: left_navigation.jsp(in = 1553) (out= 1553)(stored 0%)
adding: session_result.jsp(in = 2488) (out= 2488)(stored 0%)
adding: view_file.jsp(in = 2653) (out= 2653)(stored 0%)
adding: session_create.jsp(in = 2690) (out= 2690)(stored 0%)
adding: WEB-INF/(in = 0) (out= 0)(stored 0%)
adding: WEB-INF/web.xml(in = 1438) (out= 1438)(stored 0%)
adding: authorize.jsp(in = 2729) (out= 2729)(stored 0%)
adding: css/(in = 0) (out= 0)(stored 0%)
adding: css/bootstrap.min.css(in = 90193) (out= 90193)(stored 0%)
adding: img/(in = 0) (out= 0)(stored 0%)
adding: img/glyphicons-halflings.png(in = 4352) (out= 4352)(stored 0%)
adding: img/glyphicons-halflings-white.png(in = 4352) (out= 4352)(stored 0%)
adding: session_manage.jsp(in = 6738) (out= 6738)(stored 0%)
adding: diagnostics.jsp(in = 2365) (out= 2365)(stored 0%)
adding: show_table.jsp(in = 4996) (out= 4996)(stored 0%)
adding: index.jsp(in = 1876) (out= 1876)(stored 0%)
adding: error_page.jsp(in = 1867) (out= 1867)(stored 0%)
adding: show_databases.jsp(in = 2096) (out= 2096)(stored 0%)
adding: session_diagnostics.jsp(in = 2489) (out= 2489)(stored 0%)
adding: session_history.jsp(in = 3150) (out= 3150)(stored 0%)

2、执行jar cvfM0 hive-hwi-0.13.1.war -C web/ .打包命令,即可生成我们需要的hive-hwi-0.13.1-war,并将其拷贝到hive安装目录lib目录中如下:

[hadoopUser@secondmgt hwi]$ ls
hive-hwi-0.13.1.war  hive-hwi.iml  pom.xml  src  web

三、在hive-site.xml中添加HWI配置

我们需要将hive-default.xml中关于HWI的一些默认配置在hive-site.xml中按照自己的要求配置。hive-site.xml中关于HWI的配置如下:

<property><name>hive.hwi.war.file</name><value>lib/hive-hwi-0.13.1.war</value><description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description>
</property><property><name>hive.hwi.listen.host</name><value>192.168.2.133</value><description>This is the host address the Hive Web Interface will listen on</description>
</property><property><name>hive.hwi.listen.port</name><value>9999</value><description>This is the port the Hive Web Interface will listen on</description>
</property>

hive.hwi.war.file属性就是指定Hive Web用户接口程序安装包位置,其安装包即为我们第二部打包的文件。

四、重新启动HWI服务

[hadoopUser@secondmgt conf]$ hive --service hwi
15/01/09 16:17:13 INFO hwi.HWIServer: HWI is starting up
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.reduce.tasks.speculative.execution is deprecated. Instead, use mapreduce.reduce.speculative
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.min.split.size.per.node is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.node
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.min.split.size.per.rack is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.rack
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize
15/01/09 16:17:14 INFO Configuration.deprecation: mapred.committer.job.setup.cleanup.needed is deprecated. Instead, use mapreduce.job.committer.setup.cleanup.needed
15/01/09 16:17:14 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
15/01/09 16:17:14 INFO mortbay.log: jetty-6.1.26
15/01/09 16:17:14 INFO mortbay.log: Extract /home/hadoopUser/cloud/hive/apache-hive-0.13.1-bin/lib/hive-hwi-0.13.1.war to /tmp/Jetty_192_168_2_133_9999_hive.hwi.0.13.1.war__hwi__gybk6o/webapp
15/01/09 16:17:14 INFO mortbay.log: Started SocketConnector@192.168.2.133:9999

从启动日志来看,启动正常,不再报第一步的错误。

五、启动Hive metastore服务

       注意:不管是使用Hive CLI、客户端还是HWI访问Hive,都需要首先启动Hive 元数据服务,否则无法访问Hive数据库。如下:

[hadoopUser@secondmgt ~]$ hive --service metastore
Starting Hive Metastore Server
15/01/09 16:38:52 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
15/01/09 16:38:52 INFO Configuration.deprecation: mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize
15/01/09 16:38:52 INFO Configuration.deprecation: mapred.reduce.tasks.speculative.execution is deprecated. Instead, use mapreduce.reduce.speculative
15/01/09 16:38:52 INFO Configuration.deprecation: mapred.min.split.size.per.node is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.node
15/01/09 16:38:52 INFO Configuration.deprecation: mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive

五、使用网页访问Hive

1、我们在浏览器中输入:http://192.168.2.133:9999/hwi,192.168.2.133是我Hive安装的主机IP,可以修改为你对应的主机IP。Hive Web功能还是比较简单、界面也比较简陋,首页如下:

2、点击"Browse Schema" 查看Hive中的数据库,由下图可知,我的Hive中有两个数据库,分别是default和hive

3、点击“hive”,查看hive数据库中有哪些表,如下,我的hive数据库中只有一个“querysglog”表:

六、在Web界面执行HQL操作

1、创建session

我们在Web来执行一些Hive 查询操作,感受下Hive web用户接口。在执行查询之前,需要先创建一个session,点击“Create Session”,创建session,并取名为gxnzx,如下:

2、查看session,点击“List Sessions”,如下

3、在上图中,点击“Manager”后,输入结果文件名,和查询语句,执行提交即可执行查询操作,结果将保持在创建的文件名中。

 注意:多个语句之间一定要使用分号分开。

4、点击上图中“View File”即可查看查询结果。

总结:

如果使用过CLI的朋友看了上面的介绍,一定会发现一个很严重的问题:执行的过程没有提示。我们不知道某一个查询执行是什么时候结束的。但是在服务终端可以看到执行过程日志信息。

总之,使用Hive的Web HWI用户接口很不方便,一般我们都是用CLI操作Hive。

附:

使用Hive Web过程中,可能还会遇到其他一些问题和异常错误,我讲自己遇到的异常和错误及解决办法总结如下:

         1、tools.jar问题

在浏览器中输入http://192.168.2.133:9999/hwi时,页面打不开并报如下错误

Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/home/hadoopUser/cloud/jdk/jdk1.7.0_60/jre"

出现此问题是因为java.home指到$JAVA_HOME/jre下了,而其lib下的tools.jar跟$JAVA_HOME/lib/tools.jar不一样,编译jsp的时候需要用到后者.

解决办法: 将$JAVA_HOME/lib/tools。jar复制到Hive的lib目录中,如下:

cp /usr/java/jdk1.7.0_55/lib/tools.jar /usr/local/hive/lib/
                          hive --service hwi    重启即可。

 2、hive的元数据服务未启动,报以下错误:

15/01/09 16:37:58 INFO hive.metastore: Trying to connect to metastore with URI thrift://192.168.2.133:9083
15/01/09 16:37:58 WARN hive.metastore: Failed to connect to the MetaStore Server...
15/01/09 16:37:58 INFO hive.metastore: Waiting 1 seconds before next connection attempt.

解决办法:不管使用哪种方式访问hive,都需要首先启动hive的metaserver服务。

Hive用户接口(一)—Hive Web接口HWI的操作及使用相关推荐

  1. python编写web接口_Python写web接口

    前言 最近在看有关python的一些知识.是关于深度学习的东西,但是很不明白,因为自己的数学功底太差.之前总是想搞一些关于算法的东西,又不会,这就想起来了大二实训老师的话.这个老师挺好,和我聊了两堂课 ...

  2. 登录验证过程,PC与APP开放登录接口(支持WEB与SDK方式)

    1.需求场景 登录,是一个系统的第一步功能.登录成功后,才能进入系统,使用系统功能.在某些场景下,其它系统需要接入到本系统中.或者通过接口的方式进行登录,以及通过接口的方式来取数据. 另外,系统配套移 ...

  3. 软件测试常见的接口协议,软件测试之接口常见的接口类型

    原标题:软件测试之接口常见的接口类型 接口是指外部系统与系统之间以及内部各子系统之间的交互点.包括外部接口.内部接口,内部接口又包括:上层服务与下层服务接口.同级接口. 常见web接口:一类是http ...

  4. hive提供oracle接口嘛,Hive是个什么东东

    Hive是基于Hadoop平台的数仓工具,具有海量数据存储.水平可扩展.离线批量处理的优点,解决了传统关系型数仓不能支持海量数据存储.水平可扩展性差等问题,但是由于Hive数据存储和数据处理是依赖于H ...

  5. 探索Hive用户权限(二):HiveServer2安全访问Hive

    目录 前言 一.提出问题:beeline登录后没有认证 二.hiveServer2的身份认证 1.自定义hiveServer2身份认证 2.测试一下 三.hive.server2.enable.doA ...

  6. WEB接口测试之Jmeter接口测试自动化 (一)(初次接触)

    软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试. 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在 ...

  7. kali linux 截图 软件,Kali-Linux-Tools-Interface:针对Kali Linux的图形化Web接口

    Kali-Linux-Tools-Interface 在当今这个信息时代,数据是最有价值的资产,因此,广大用户和企业已成为网络攻击的主要目标.众所周知,信息安全专业人员都会使用一系列技术工具来协助他们 ...

  8. STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)

    STS创建Spring Boot项目实战(Rest接口.数据库.用户认证.分布式Token JWT.Redis操作.日志和统一异常处理) 1.项目创建 1.新建工程 2.选择打包方式,这边可以选择为打 ...

  9. python产品发布会_阅读虫师django开发发布会系统以及django开发Web接口分享

    最近阅读了虫师的书籍,关于虫师分析django Web开发以及django 开发Web接口,通过阅读虫师的书籍,学到了很多东西,在这里分享一下,和简友一起学习和讨论 1.创建项目django-admi ...

最新文章

  1. 重塑云上的 Java 语言
  2. 6行代码解决golang TCP粘包
  3. 计算机网络-基本概念(1)【网络层】-ARP协议以及数据传输过程
  4. OCPC 广告算法在凤凰新媒体的实践探索
  5. linux配置串口不支持serial,linux 串口serial1和serial2不能用?
  6. IDEA——必备插件指南
  7. java中KMP模式,Java数据结构-串及其应用-KMP模式匹配算法
  8. 机房三维(3D)监控系统和机房可视化动力环境监控系统两者有什么特点?
  9. AWT_addKeyListener键盘监听事件(Java)
  10. pillow python histogram_Python中的PIL库
  11. php laravel 相关收集
  12. Struts中拦截器和过滤器的区别
  13. Mock数据模板规范详解
  14. 编程专业人的良好习惯(练习、时间管理、压力、团队协作)
  15. 基因表达式编程(GEP)自学 第【1】天 Python 实现
  16. CUPS学习一:CUPS设计介绍。
  17. exchange rate维护
  18. 如何使用光盘启动计算机,如何从光驱启动?从光驱启动方法介绍【图文详解】...
  19. 全链路压测那点事(一)
  20. JavaScript知识汇总

热门文章

  1. 手工脱壳之 FSG压缩壳【IAT反修复】
  2. 计算机主机安装cpu,安装电脑CPU有什么注意事项
  3. 移动通信基础(11)跳频
  4. 大环境不确定,高端IT人才独有的大趋势在哪?|猿代码科技
  5. VS2013编译ffmpeg
  6. android huawei ale-tl00 不显示log,华为手机ALE_TL00为什么插卡不显示
  7. java判断是平年还是闰年
  8. js 跨域访问问题解决方法
  9. 激光共聚焦显微镜在材料生产领域中的应用
  10. matlab识别岩石破坏,MATLAB环境下岩石SEM图像损伤分形维数的实现