2.3 Hive的下载、安装与配置

2016-03-17 23:39:15 9,929 0

https://cwiki.apache.org/confluence/display/Hive/AdminManual+Installation

环境要求:

JDK版本:HIVE 1.1要求安装的JDK版本大于1.7或者更高,HIVE版本从0.14-1.1可以运行在JDK1.6上。HIVE官方文档强烈建议JDK使用1.8的版本

Hadoop版本:建议使用Hadoop2.x。在安装Hive的机器上,必须要安装了Hadoop。很容易理解,因为查询会转换成MapReduce Job执行。因为需要转换,所以必须要有Hadoop


下载:

su hadoop
http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.4.7.tar.gz

安装

tar -xvf hive-1.1.0-cdh5.4.7.tar.gz -C /usr/local
mv /usr/local/hive-1.1.0-cdh5.4.7 /usr/local/hive

设置环境变量HIVE_HOME(/etc/profile)

export HIVE_HOME=/usr/local/hive

创建Hive运行时目录并赋予权限

$HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir  -p     /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

修改配置文件

cd $HIVE_HOME/conf
cp hive-default.xml.template hive-default.xml
touch hive-site.xml
cp hive-exec-log4j.properties.template hive-exec-log4j.properties
cp hive-log4j.properties.template hive-log4j.properties
cp beeline-log4j.properties.template beeline-log4j.properties

即:把$HIVE_HOME/conf下带.template后缀的模板文件,复制一份变成不带.template的配置文件,注意hive- default.xml.template这个要复制二份,一个是hive-default.xml,另一个是hive-site.xml,其中 hive-site.xml为用户自定义配置,hive-default.xml为全局配置,hive启动时,-site.xml自定义配置会覆盖 -default.xml全局配置的相同配置项。非常不建议直接将hive-default.xml 直接复制为hive-site后进行修改,因为这样的话,我们根本不记得对那些配置项进行过修改,由于hive-site的作用是覆盖默认的配置,我们只需要将需要修改地方配置到hive-site.xml文件中即可。

hive默认使用derby保存元数据,此时我们将其修改为mysql。我们知道配置一个数据库连接,必须要使用username、password、jdbcDriver和url,在hive-site.xml中,我们添加

<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hive_metastore</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>hive</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>hive</value>
        </property>
</configuration>

注意每一个value元素中的值前后都不能包含空格,否则解析的时候回出错误。

当然,此时,我们需要在mysql中创建一个库hive-metastore,并创建用户hive,密码为hive,并将hive-metastore库的所有权限授予hive用户。并且我们需要将mysql的jdbc驱动上传到$HIVE_HOME的lib目录下。

create database hive_metastore;
grant all on hive_metastore.* to hive@'%' identified by 'hive';
grant all on hive_metastore.* to hive@localhost identified by 'hive';
ALTER DATABASE hive_metadata CHARACTER SET latin1;

验证安装成功

在命令行中输入"hive",出现类似以下界面表示安装成功!

[hadoop@iZ28csbxcf3Z conf]$ hive
Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive>