备忘,HWI安装过程,整理以前的记录,今又想起来重装一次,居然又遇到新的问题,由于是笔记,有点杂乱。
Hive Web Interface(HWI)简介:Hive自带了一个Web-GUI,功能不多,可用于效果展示,如果没有安装Hue的话,是个不错的选择。
由于hive-bin包中没有包含HWI的页面,只有Java代码编译好的jar包:hive-hwi-1.2.0.jar
因此需要下载源码从中提取jsp文件并打包成war文件到hive-lib目录中:
wget http://mirror.bit.edu.cn/apache/hive/stable/apache-hive-1.2.0-src.tar.gz tar xf apache-hive-1.2.0-src.tar.gz cd apache-hive-1.2.0-src/hwi jar cfM hive-hwi-1.2.0.war -C web .
使用jar程序生成war包的方法参考:如何将Web应用打包成.war文件?
注意了,如果jar不加“-C”参数指定目录执行,都会报错:
adding: session_kill.jspjava.util.zip.ZipException: duplicate entry: session_kill.jsp
即使进入web目录也不行,如:jar cfM hive-hwi-1.2.0.war *.* .
这个文件是不可能重复的,即使移到Win下重新打包仍然报错,有点不解。
当然,采用zip压缩也可以,因为jar的压缩格式也是zip,因此两者可以通用:
yum -y install zip zip -rq hive-hwi-1.2.0.war *
最后将hive-hwi-1.2.0.war放到hive-lib目录下即可启动hwi服务:
hiveLogPath='/var/log/hadoop/hive' HIVE_HOME='/usr/local/hive' mkdir -p $hiveLogPath nohup $HIVE_HOME/hive --service hiveserver2 > $hiveLogPath/hiveserver2.log 2>&1 & nohup $HIVE_HOME/hive --service metastore > $hiveLogPath/metastore.log 2>&1 & nohup $HIVE_HOME/hive --service hwi > $hiveLogPath/hwi.log 2>&1 &
但是发现hwi启动失败,报错:
ERROR hwi.HWIServer: HWI WAR file not found at /usr/local/hive/usr/local/hive/lib/hive-hwi-1.2.0.war
原因是hwi启动脚本($HIVE_HOME/bin/ext/hwi.sh)的bug:
export HWI_WAR_FILE=$(ls ${HIVE_LIB}/hive-hwi-*.war)
脚本执行过程如下:
+ HWI_JAR_FILE=/usr/local/hive/lib/hive-hwi-1.2.0.jar
++ ls /usr/local/hive/lib/hive-hwi-1.2.0.war
+ export HWI_WAR_FILE=/usr/local/hive/lib/hive-hwi-1.2.0.war
...
+ exec /usr/local/hadoop/bin/hadoop jar /usr/local/hive/lib/hive-hwi-1.2.0.jar org.apache.hadoop.hive.hwi.HWIServer
此处用的是完整路径,然而HWIServer类中的代码用的相对路径:
String hwiWAR = conf.getVar(HiveConf.ConfVars.HIVEHWIWARFILE); String hivehome = System.getenv().get("HIVE_HOME"); File hwiWARFile = new File(hivehome, hwiWAR); if (!hwiWARFile.exists()) { l4j.fatal("HWI WAR file not found at " + hwiWARFile.toString()); System.exit(1); }
这里为了方便直接修改脚本第29行为:
export HWI_WAR_FILE=$(ls $HIVE_LIB/hive-hwi-*.war | awk -F/ '{print "lib/"$NF}')
当然,也可以在配置文件hive-site.xml中指定:
<property> <name>hive.hwi.war.file</name> <value>lib/hive-hwi-1.2.0.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>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>
参考:启动hive hwi服务时出现 HWI WAR file not found错误
接着访问URL:http://master:9999/hwi/
然而继续报错:
ERROR compiler.Compiler: Javac exception
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 "/usr/local/java/jre"
原因:jetty编译jsp类时,ant没有识别到正确的jdk路径。
解决:ln -s $JAVA_HOME/lib/tools.jar $HIVE_HOME/lib/
eof.hi
相关推荐
【标题】"Hive-HWI:Hive Web Interface(网页版接口)" 【描述】"在深入探讨Hive-HWI之前,我们先了解Hive的基本概念。Hive是由Facebook开发的一种基于Hadoop的数据仓库工具,它允许用户使用SQL-like语言(HQL,...
### Hive-1.2.1-hwi配置详解 #### 一、概述 Hive是一款基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能,使得Hadoop能够更好地处理大数据。在Hive 1.2.1版本中,引入...
基于hive 0.13.1源码编译的hwi包,需要的同学欢迎下载。。。默认放到hive安装目录lib中,具体视hive-site.xml配置而定
- **HWI (Hive Web Interface)**: HWI是Hive的一个Web界面,通过Web浏览器访问Hive。要使用HWI,需要安装Ant并配置其环境变量,然后通过命令`hive --service hwi`启动服务,之后可通过浏览器访问`localhost:9999/hwi...
- `--service`: 可以启动Hive的不同服务,如元数据存储服务(`metastore`)、HiveServer2(提供客户端连接)和服务接口(HWI,Hive Web Interface)。 3. **Hive 交互式窗口命令** - `exit` 或 `quit`: 退出Hive...
hive-hwi-0.14.0.war 用于hwi 的配置
- **用户接口**:包括Hive CLI、HWI(Web界面)和Hive Thrift(支持多种语言的Thrift客户端)。 - **元数据库**:存储表、字段、分区等元数据信息,对Hive操作至关重要。 - **元数据存储模式**:单用户模式、多...
- **hwi**:Web界面实现。 - **service**:Thrift服务接口实现。 - **odbc/jdbc**:ODBC/JDBC接口实现。 - **serde**:序列化/反序列化及Hive数据类型实现。 - **ql**:编译器和运行时实现。 - **metastore**:元...
1. **安装Hive:** - **解压安装包:** 首先在Hadoop客户端上解压Hive的安装包`hive-0.9.0-bin.tar.gz`并重命名目录为`hive`。 - **配置环境变量:** 通过编辑`/etc/profile`文件来设置Hive的环境变量`HIVE_...
已经测试ok的hive-hwi-0.12.0-cdh5.0.0.war文件,直接放到hive/lib下可用
2. 使用`hive --service hwi`启动Hive Web Interface,可通过浏览器访问`http://192.168.110.223:9999/hwi/`。 完成上述步骤后,Hive即已成功配置并可开始使用。通过Hive,用户可以执行复杂的SQL查询,大大简化了大...
hive-anttasks.jar hive-cli.jar hive-common.jar hive-contrib.jar hive-hbaseec.jar ...hive-hwi.jar hive-jdbc.jar hive-metastorejar hive-serde.jar hive-service.jar hive-shims.jar hadoop-core-1.0.4.jar
描述中的"hive hwi"则提到了Hive的Web交互界面(Hive Web Interface,简称HWI)。Hive是Apache软件基金会的一个项目,它提供了一个基于Hadoop的数据仓库工具,用于查询和管理大规模数据集。HWI是Hive的一部分,允许...
4. WEB GUI:Hive Web Interface (HWI) 提供了一个基于网页的界面来访问 Hive 服务。 5. Metastore:存储关于表、列、分区等元数据的信息。 6. Driver:负责编译、优化和执行 HiveQL 语句,生成相应的 MapReduce ...
此外,Hive还提供了Hive Web Interface(HWI)服务,允许用户通过Web界面进行交互。 HiveServer是Hive的一个可选服务,允许远程客户端使用各种编程语言提交请求并获取结果。HiveServer基于Thrift,有时也被称为...
- 最后,启动 Hive 的 Web 界面服务,使用命令 `$HIVE_HOME/bin/hive --service hwi`。 通过以上步骤,你将能够建立一个多用户支持且具有 Web 界面的 Hive 平台。Web 界面(HWI,Hive Web Interface)允许用户通过...
- Web GUI (HWI):基于浏览器的简单图形界面。 2. **命令执行流程**: - 用户提交的SQL语句经过Driver模块解析、编译、优化,生成执行计划。 - 执行计划通常转化为MapReduce任务,Hive并不生成具体的Java程序,...
服务器端有CLI、Thrift Server、HWI(Hive Web Interface)以及内部组件Driver和Metastore。CLI是命令行接口,HWI是Web界面,Thrift Server提供服务。Metastore负责元数据服务,通常单独部署在一个节点上,元数据...