定义
Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。Hive可以将结构化的数据存储在数据仓库中,通过自己的SQL去查询分析需要的内容,这套SQL简称Hive SQL。它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML 以及常见的聚合函数、连接查询、条件查询。
Hive在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduce任务提交给Hadoop集群处理,获取最终的结果。
以上定义来源于《Hadoop开发者入门专刊》
Hive安装
我将延用《Hadoop安装》文档(http://yymmiinngg.iteye.com/blog/706699)风格撰写下文。
Hive需要Hadoop的支持,也就是说在安装Hive之前需要正确安装Hadoop,这里不再阐述Hadoop的安装过程。一般我们会将Hive安装到NameNode所在主机上,这里假设使用root用户进行安装,Hive的安装过程很简单:
[root@192.168.1.111] # 去到hadoop的目录,使用hadoop的项目根目录 [root@192.168.1.111] cd /opt/hadoop [root@192.168.1.111] # 下载项目包(去官网(http://hadoop.apache.org/)下载Hadoop项目) [root@192.168.1.111] wget http://www.apache.org/dist/hadoop/hive/hive-0.5.0/hive-0.5.0-dev.tar.gz [root@192.168.1.111] # 解压 [root@192.168.1.111] tar xzvf hive-0.5.0-dev.tar.gz [root@192.168.1.111] # 进入目录 [root@192.168.1.111] cd hive-0.5.0-dev [root@192.168.1.111] # 与Hadoop的安装一样,我们应该习惯性的将安装目录写入环境变量 [root@192.168.1.111] export HIVE_HOME=`pwd` [root@192.168.1.111] # 也可以将环境变量设置到/etc/profile中 |
以上就是在Linux(cent os 5.X)上安装Hive的过程,下面就到了配置的环节。
Hive配置
Hive的必要配置相当简单,只需要声明$HADOOP_HOME(请查阅《Hadoop安装》文档)这个环境变量就行了。
Hive的核心配置文件$HIVE_HOME/conf/hive-default.xml中有一些对Hive关键配置,一般我们不需要对期进行改动,如果你需要更改这个关键配置,请不要直接更改hive-default.xml这个文件,在同一目录下新建hive-site.xml文件,然后将需要更改的属性配置在这里面即可,配置格式与hive-default.xml一样。
另外,在Hive官方文档中重点提到了Hive的日志配置$HIVE_HOME/conf/hive-log4j.properties,虽然不是必要更改的配置文件,但合理的设置会对我们有一定的帮助,具体配置方法可见官方文档。
根据官方文档的描述,在使用Hive之前需要在HDFS中创建几个目录,并且将其开放g+w模式。如下代码所示:
[root@192.168.1.111] $HADOOP_HOME/bin/hadoop fs -mkdir /tmp [root@192.168.1.111] $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse [root@192.168.1.111] $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp [root@192.168.1.111] $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse |
通过我的试验,以上创建目录的步骤是可以省略的,Hive会自动创建需要的目录。
Hive运行示例:
Hive提供了一个CLI(Command Line Interface)客户端,我们可以通过CLI进行直观的DDL、DML及SQL操作。以下是CLI使用示例:
[root@192.168.1.111] # 打开Hive客户端 |
在hive控制台,执行命令成功后会打印如下所求的提示:
OK Time taken: 5.004 seconds |
如果有以上提示就证明你的Hive已经安装成功并能运行了。