168大数据

标题: 搭建HWI(HiveWebInterface)步骤总结 [打印本页]

作者: 168主编    时间: 2019-3-31 18:23
标题: 搭建HWI(HiveWebInterface)步骤总结
本帖最后由 168主编 于 2019-3-31 18:33 编辑

 众所周知,Hive有三种使用方式:CLI、HWI浏览器、Thrift客户端。安装配置完Hive后无需进行额外操作即可使用CLI。但是HWI则需要单独搭建。本文主要记录我自己搭建HWI的过程。
  说明:本文主要介绍HWI的安装,后续会完成下面两篇博文:
  本博主主要是记录自己的学习内容,有哪些理解不到位的地方还请各位读者提出宝贵意见。
简单查看hwi使用
  在命令行输入:
  
[AppleScript] 纯文本查看 复制代码
hive --service hwi --help

  输出内容如下,给出了HWI的使用方法。
  
[AppleScript] 纯文本查看 复制代码
Usage ANT_LIB=XXXX hive --service hwi

  在命令行输入
[AppleScript] 纯文本查看 复制代码
hive --service hwi 

  报错,报错信息如下:
  
[AppleScript] 纯文本查看 复制代码
cannot access /home/linux/application/hive2.1.0/lib/hive-hwi-*.war: No such file or directory
报错原因:lib下面没有war包,查找各种资料都提示需要从官网下载hive源代码src文件然后打包web文件夹的war文件。
搭建HWI打包war文件
[AppleScript] 纯文本查看 复制代码

<property>  
<name>hive.hwi.listen.host</name>
  <value>0.0.0.0</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>
<property>
  <name>hive.hwi.war.file</name>
  <value>${HIVE_HOME}/lib/hive-hwi-<version>.war</value>
  <description>This is the WAR file with the jsp content forHive Web Interface</description>
</property>


安装ANT
HWI需要用Apache的ANT来编译,因此需要安装ANT。
Apache Ant is a Java library and command-line tool that help building software.
ANT的安装及配置步骤尝试启动HWI
  在命令行输入下面的命令,目的是为了启动相关服务。
[color=blue !important]+ View Code


  在浏览器中输入 localhost:9999/hwi。一直刷不出网页,我又把配置文件中hive.hwi.war.file的Value值改为:lib/hive-hwi-2.1.0.war (使用相对路径),然后刷新页面又报错如下:
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

  出错原因: HIVEHOME/lib下没有tools.jar所致。把JAVA安装目录下的tools.jar包复制到HIVEHOME/lib下没有tools.jar所致。把JAVA安装目录下的tools.jar包复制到{HIVE_HOME}/lib,命令如下:
[AppleScript] 纯文本查看 复制代码
cp ${JAVA_HOME}/lib/tools.jar ${HIVE_HOME}/lib

  再次刷新localhost:9999/hwi又如下错误:
   
[AppleScript] 纯文本查看 复制代码
The following error occurred while executing this line:
jar:file:/home/linux/application/hive2.1.0/lib/ant-1.9.1.jar!/org/apache/tools/ant/antlib.xml:37: Could not create task or type of type: componentdef.

Ant could not find the task or a class this task relies upon.

This is common and has a number of causes; the usual
solutions are to read the manual pages then download and
install needed JAR files, or fix the build file:
- You have misspelt 'componentdef'.
Fix: check your spelling.
- The task needs an external JAR file to execute
and this is not found at the right place in the classpath.
Fix: check the documentation for dependencies.
Fix: declare the task.
- The task is an Ant optional task and the JAR file and/or libraries
implementing the functionality were not found at the time you
yourself built your installation of Ant from the Ant sources.
Fix: Look in the ANT_HOME/lib for the 'ant-' JAR corresponding to the
task and make sure it contains more than merely a META-INF/MANIFEST.MF.
If all it contains is the manifest, then rebuild Ant with the needed
libraries present in ${ant.home}/lib/optional/ , or alternatively,
download a pre-built release version from apache.org
- The build file was written for a later version of Ant
Fix: upgrade to at least the latest release version of Ant
- The task is not an Ant core or optional task
and needs to be declared using <taskdef>.
- You are attempting to use a task defined using
<presetdef> or <macrodef> but have spelt wrong or not
defined it at the point of use

Remember that for JAR files to be visible to Ant tasks implemented
in ANT_HOME/lib, the files must be in the same directory or on the
classpath

Please neither file bug reports on this problem, nor email the
Ant mailing lists, until all of these causes have been explored,
as this is not an Ant bug.

  根据错误信息,HIVEHOME/lib下的ant.jar版本为1.9.1,但是我装的ant版本为1.9.7,因此该错误是因为版本不一致导致的。因此,需要把HIVEHOME/lib下的ant.jar版本为1.9.1,但是我装的ant版本为1.9.7,因此该错误是因为版本不一致导致的。因此,需要把{ANT_HOME}/lib下的ant.jar包copy到${HIVE_HOME}/lib下,并修改权限为777。
使用的命令如下:
[AppleScript] 纯文本查看 复制代码
cp ${ANT_HOME}/lib/ant.jar  ${HIVE_HOME}/lib/ant-1.9.7.jar
cd ${HIVE_HOME}/lib
chmod 777 ant-1.9.7.jar

 再次启动HWI 
此时可以把原服务关掉,重新启动服务,命令为:hive --service hwi,并在浏览器中输入:localhost:9999/hwi,多刷新几次即可。说明:localhost可能是你的主机名或IP。
HWI的界面如下:
参考官网:https://cwiki.apache.org/confluence/display/Hive/HiveWebInterface





欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2