0. 说明
已经安装好Hadoop-1.2.1。
安装好mysql。
1.解压安装包
先把安装包下载。然后解压:
tar -zxvf apache-hive-1.1.0-bin.tar.gz
2.配置环境变量
vim /etc/profile
导入下面的环境变量
export HIVE_HOME=hive安装目录
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf
使刚刚配置的环境变量立即有效
source .bash_profile
3.配置hive参数
hive的配置文件放在$HIVE_HOME/conf下,里面有4个默认的配置文件模板
hive-default.xml.template 默认模板
hive-env.sh.template hive-env.sh默认配置
hive-exec-log4j.properties.template exec默认配置
hive-log4j.properties.template log默认配置
可不做任何修改hive也能运行,默认的配置元数据是存放在Derby数据库里面的,大多数人都不怎么熟悉,我们得改用mysql来存储我们的元数据,以及修改数据存放位置和日志存放位置等使得我们必须配置自己的环境,下面介绍如何配置。
3.1 创建配置文件
直接copy默认配置文件再修改即可,用户自定义配置会覆盖默认配置.
$ cp $HIVE_HOME/conf/hive-default.xml.template $HIVE_HOME/conf/hive-site.xml
$ cp $HIVE_HOME/conf/hive-env.sh.template $HIVE_HOME/conf/hive-env.sh
$ cp $HIVE_HOME/conf/hive-exec-log4j.properties.template $HIVE_HOME/conf/hive-exec-log4j.properties
$ cp $HIVE_HOME/conf/hive-log4j.properties.template $HIVE_HOME/conf/hive-log4j.properties
3.2 修改hive-env.sh
vi $HIVE_HOME/conf/hive-env.sh
export HADOOP_HOME=hadoop安装目录
export HIVE_CONF_DIR= hive安装目录/conf
3.3 修改hive-log4j.properties
创建hive日志目录:
mkdir $HIVE_HOME/logs
配置日志目录:
vi $HIVE_HOME/conf/hive-log4j.properties
hive.log.dir=/opt/hive-1.2.1/logs
3.4 修改 hive-site.xml
默认hive使用Derby数据库存放元数据,修改为支持mysql数据库。
要修改的重要参数:
- hive.metastore.warehouse.dir:数据存储目录,是HDFS上的位置,默认值:/user/hive/warehouse,为了便于管理,hive-1.2.1文件下创建目录warehouse。
- hive.exec.scratchdir:临时数据目录,默认为:/tmp/hive-${user.name}。为了便于管理,hive-1.2.1文件下创建目录scratchdir。
- javax.jdo.option.ConnectionURL:指定hive连接的数据库的数据库连接字符串
- javax.jdo.option.ConnectionDriverName:指定驱动的类入口名称
- javax.jdo.option.ConnectionUserName:指定数据库的用户名
- javax.jdo.option.ConnectionPassword:指定数据库的登录密码,与用户名对应
vi $HIVE_HOME/conf/hive-site.xml
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hive安装目录/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>hive安装目录/scratchdir</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>hive安装目录/logs</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>mysql登录用户名</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql登录密码</value>
</property>
4.上传jdbc jar包
默认hive使用Derby数据库存放元数据,并且也集成了Derby数据库及连接驱动jar包,但此处我们换成了MySQL作为数据库,所以还必须得有MySQL的JDBC驱动包。
将驱动包复制到$HIVE_HOME/lib下:
cp mysql-connector-java-5.1.17.jar $HIVE_HOME/lib
5. 测试hive
Hadoop已经启动后,才能启动hive。
直接在命令行输入:
hive
能够进入hive界面,即说明成功。
其他测试:
测试输入 show database;
hive> show databases;
OK
default
Time taken: 0.907 seconds, Fetched: 1 row(s)