声明:本篇blog并没有配置MySQL,元数据库为derby
如需配置mysql请点击:http://blog.csdn.net/gamer_gyt/article/details/47776369
一、环境
Ubuntu14.04
hadoop2.6伪分布(安装教程请参考:点击打开链接)
hive-1.2.1(下载链接:点击打开链接)
二、安装
1、将其下载的安装包解压到相应的目录,在此小编的是/usr/local/hadoop/
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/hadoop
重命名操作(为了后续方便)
mv apache-hive-1.2.1-bin hive
2、配置hive的环境变量(在此注意,小编的profile中并未配置),故不细说
3、修改hive/conf下的几个template模板,并重命名为其他
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
4、配置hive-env.sh文件,如图所示:
5、修改hive-site.xml文件
在修改之前,要相应的创建目录,以便与配置文件中的路径相对应,否则在运行hive时会报错的。
mkdir -p /usr/local/hadoop/hive/warehouse
mkdir -p /usr/local/hadoop/hive/tmp
mkdir -p /usr/local/hadoop/hive/log
这个文件中的配置项很多,篇幅也很长,所以要有耐心看。
当然也可以使用搜索匹配字符串的方式进行查找(Ctrl+F):
键入‘/hive.metastore.warehouse.dir’(回车)
就会锁定到所需要的字符串上。
其中有三处需要修改:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/local/hadoop/hive/warehouse</value>
</property>
这个是设定数据目录
-------------------------------------
<property>
<name>hive.exec.scratchdir</name>
<value>/usr/local/hadoop/hive/tmp</value>
</property>
这个是设定临时文件目录
--------------------------------------
<property>
<name>hive.querylog.location</name>
<value>/usr/local/hadoop/hive/log</value>
</property>
这个是用于存放hive相关日志的目录
其余的不用修改。
6、如果到此结束配置启动hive会报错,如下:
解决方法:
1.查看hive-site.xml配置,会看到配置值含有"system:java.io.tmpdir"的配置项
2.新建文件夹/usr/local/hadoop/hive/log
3.将含有"system:java.io.tmpdir"的配置项的值修改为如上地址
有时候会遇到修改完还会出现上述错误,此时做如下处理:
可把hive/lib/jline-2.12.jar复制到hadoop/share/hadoop/yarn/lib/目录下,将其原来的jlie给删除了
cp /usr/local/hadoop/hive/lib/jline-2.12.jar/usr/local/hadoop/share/hadoop/yarn/lib/
rm -r /usr/local/hadoop/share/hadoop/yarn/lib/jline-0.98.jar
注意:版本不一样jline的名称会有所不同,具体以自己的为准
7、复制 tools.jar(jdk的lib包下面的jar包) 到 hive/lib下
启动hive,成功!
8、启动命令:
进入hive的解压目录,执行bin/hive,回车即可
启动hive web服务:bin/hive --service hwi
端口访问如图 http://127.0.0.1:9999/hwi/:
三:web界面使用说明
USER模块(AUTHORIZE,用户认证模块):
首先了解用户 认证与会话的关系,在hwi中的User和Groups输入用户和所属的用户组,每一个用户认证(AUTHORIZE)信息对应着一组会话信息,hive重启后这些session信息会消失:
SESSIONS模块是界面与HIVE的交互,hive重启后,session信息会丢失,Create Session(创建会话),List Sessions(会话管理)
首先创建一个session search_all_databases(查询所有的数据库):
提交之后点击List Sessions,写入相关的信息:Result File 是查询结果的输出文件,Error File是错误保存的文件,Query中写入你的HQL(注意结尾不用加分号),Start Query:YES,点击Submit
点击submit之后会在result File 后边显示一个View File,同属Query中的查询语句被自动加上了分号,点击View File之后显示Hive中所有的数据库(由于我的hive中只有一个default表,故只显示一个):
DATABASE模块是显示所有的数据库:
最下边的:: Diagnostics 是系统的相关诊断信息
HWI与CLI对比
如果使用过cli的朋友看了上面的介绍,一定会发现一个很严重的问题:执行的过程没有提示。我们不知道某一个查询执行是什么时候结束的。
总结一下HWI与CLI对比的优缺点:
优点:HWI支持浏览器的方式浏览,方便直观。
缺点:无执行过程提示。