手把手教你搭建Hive Web环境
时间:2022-04-22
本文章向大家介绍手把手教你搭建Hive Web环境,主要内容包括参考资源、第一步,打war包、修改配置文件、复制tools.jar、安装并配置ANT、启动、访问:、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
了解Hive的都知道Hive有三种使用方式——CLI命令行,HWI(hie web interface)浏览器 以及 Thrift客户端连接方式。
为了体验下HWI模式,特意查询了多方的资料,都没有一个完整的部署方案,经过一下午的踩坑,这里特意总结一下,希望为后人节省点时间。
先放个图兴奋一下!
参考资源
文档资源
各个组件
- hive 2.1.0
- hadoop 2.7.3
- jdk 1.8.0
- ant 1.9.7
第一步,打war包
按照上面的链接,下载对应版本的src文件,首先解压文件:
tar -zxvf hive-2.1.0-src.tar.gz
然后进入目录${HIVE_SRC_HOME}/hwi/web,执行打包命令:
jar -cvf hive-hwi-2.1.0.war *
得到hive-hwi-2.1.0.war文件,复制到hive下的lib目录中。
cp hive-hwi-2.1.0.war ${HIVE_HOME}/lib
修改配置文件
修改hive的配置文件hive-site.xml(这个一般是你自己创建的,有可能是创建空的、也有可能是从hive-default.xml.template来的)
<property>
<name>hive.hwi.listen.host</name>
<value>0.0.0.0</value>
<description>监听的地址</description>
</property>
<property>
<name>hive.hwi.listen.port</name>
<value>9999</value>
<description>监听的端口号</description>
</property>
<property>
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-2.1.0.war</value>
<description>war包所在的地址,注意这里不支持绝对路径,坑!</description>
</property>
复制tools.jar
不知道为什么,从很久以前的版本就有这个问题。找tools.jar一直找不到,所以需要手动复制一下:
cp ${JAVA_HOME}/lib/tools.jar ${HIVE_HOME}/lib
安装并配置ANT
Hive Web UI内部是需要Ant来进行编译的,所以需要事先安装ant。去上面提供的第二个网址链接中,下载最新版本的ant。
解压缩:
tar -zxvf apache-ant-1.9.7-bin.tar.gz
复制到/usr下
mv apache-ant-1.9.7 /usr
可以改个名字
mv apache-ant-1.9.7 ant-1.9.7
配置/etc/profile配置文件
vim /etc/profile
...
在最后面添加ant的路径
export ANT_HOME=/usr/ant-1.9.7
export PATH=$PATH:$ANT_HOME/bin
...
最后别忘记执行配置文件:
source /etc/profile
输入ant -version验证下ant是否装成功。
启动
上面的步骤都配置完,基本就大功告成了。进入${HIVE_HOME}/bin目录:
hive --service hwi
上面的命令会导致输出的信息直接打到控制台,推荐后台进程启动。
nohup bin/hive --service hwi > /dev/null 2> /dev/null &
访问:
前面配置了端口号为9999,所以这里直接在浏览器中输入:
localhost:9999/hwi
就能访问到web 界面了!
如果看不到结果,就多刷新几次~
使用的方法,就是创建一个session,然后在session里面去执行语句。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [译] JS 中 service workers 的简介
- 【译】如何大大简化你的Vuex Store
- 挑选 npm 模块很费事?掌握这些技巧就能事半功倍!
- 【译】前端 VS 后端
- 【译】9个强大的JavaScript技巧
- 【译】算法的记录
- 运行时类型识别
- 外观模式-分析和C++实现
- CSS八种让人眼前一亮的HOVER效果
- 懒加载图片以获取最佳性能的最佳方案
- Egg.js 试水 - 天气预报
- Egg.js试水 - 文章增删改查【前后端分离】
- Flutter基础widgets教程-Offstage篇
- 一份礼物.apk - o泡果奶-的逆向分析
- 代码审计-.NET下的序列化与反序列化(BinaryFormatter)