hadoop2.4.1 + apache-hive-1.2.1-bin.tar.gz
1. 内嵌模式
将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。
2. 本地模式
这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。
3. 远程模式
此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。
本文配置的是内嵌模式1.讲hive上传到 /root/training 目录下,并解压到当前文件夹
2.环境变量配置
export JAVA_HOME=/jdk/jdk1.7.0_55
export HADOOP_HOME=/root/training/hadoop-2.4.1
export HIVE_HOME=/root/training/apache-hive-1.2.1-bin
3.环境变量生效
source ~/.bash_profile
4.修改hive的配置文件
$HIVE_HOME/conf 对应的是 Hive 的配置文件路径。
4.1配置hive-site.xml但默认是不存在的,需要通过copy模板来实现
cp hive-default.xml.template hive-site.xml
hive-site.xml中有2个默认配置:
hive.metastore.warehouse.dir
/user/hive/warehouse
location of default database for the warehouse
hive.exec.scratchdir
/tmp/hive
HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/ is created, with ${hive.scratch.dir.permission}.
4.2. 以上2个目录是不存在的,需要手动创建并赋权限
$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp/hive/
hadoop fs -chmod 777 /user/hive/warehouse
hadoop fs -chmod 777 /tmp/hive
检查是否新建成功 hadoop fs -ls / 以及 hadoop fs -ls /user/hive/
5.修改/conf/hive-env.sh 文件,该文件默认不存在,拷贝它的模版来修改:
cp hive-env.sh.template hive-env.sh
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/root/training/hadoop-2.4.1
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/root/training/apache-hive-1.2.1-bin/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/root/training/apache-hive-1.2.1-bin/lib
6.修改 hive-site.xml
将所有包含${system:java.io.tmpdir}的路径用自己新建的目录去替换比如:/root/training/apache-hive-1.2.1-bin/iotmp
将所有的${system:user.name} 用root替换
7.配置hive的log4j: conf下 cp hive-log4j.properties.template hive-log4j.properties
#log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
指定日志生成的目录
hive.log.dir=/root/training/apache-hive-1.2.1-bin/log
8.把apache-hive-1.2.1-bin/lib 里面的jline2.12替换了hadoop 中hadoop-2.4.1/share/hadoop/yarn/lib的jline0.0.94
9.运行hive
进入hive的根目录(/root/training/apache-hive-1.2.1-bin/bin)执行如下命令
./hive