写在前面:hive默认使用derby数据库作为元数据的数据库

  1. 下载 hive 安装包 apache-hive-1.2.1-bin.tar.gz下载地址
  2. 解压缩(我是放在/opt目录下的)

tar -zxf apache-hive-1.2.1-bin.tar.gz

  1. 然后给文件重命名:

mv apache-hive-1.2.1-bin.tar.gz hive-1.2.1

  1. 配置环境变量(vi /etc/profile)
  2. hadoop版本对应hive版本_ubuntu

  3. 使环境变量立即生效

source /etc/profile

  1. hive 的配置
    hive的配置文件放在HIVE_HOME/conf目录下,我们需要修改hive-env.sh和hive-site.xml这两个文件。ls之后发现并没有这两个文件,但是有hive-env.sh.template,hive-default.xml.template,我们须复制这两个文件,并分别命名为hive-env.sh,hive-site.xml。一般还有一个hive-default.xml文件,同样由hive-default.xml.template复制而来。hive-default.xml是默认配置,hive-site.xml是个性化配置,将会覆盖hive-default.xml配置。复制两个文件:

cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml

  1. 配置 hive-env.sh 文件
  • 将HADOOP_HOME 前面的‘#’号去掉,并让它指向您所安装Hadoop的目录
  • 将export HIVE_CONF_DIR=/opt/hive-1.2.1/conf,并且把‘#’号去掉
  • 将export HIVE_AUX_JARS_PATH=/opt/hive-1.2.1/lib,并且把‘#’号去掉
  • hadoop版本对应hive版本_xml_02

  • 保存退出,使文件生效

source hive-env.sh

  1. 配置 hive-site.xml 文件
  • 先创建相应的目录,以便和配置文件中的路径相对应,否则在运行hive的时候会报错

mkdir /opt/hive-1.2.1/warehouse
mkdir /opt/hive-1.2.1/tmp
mkdir /opt/hive-1.2.1/log

  • 打开hive安装目录下的conf文件夹,编辑 hive-site.xml 文件

vim /opt/hive-1.2.1/conf/hive-site.xml

  • 搜索“/hive.metastore.warehouse.dir”
  • hadoop版本对应hive版本_ubuntu_03

  • 搜索“/hive.exec.scratchdir”
  • 搜索“/hive.querylog.location”
  • 其余的不用修改,默认的是使用derby数据库作为元数据的数据库
  1. 配置 hive-log4j.proprties 文件
  • 这个文件在hive的conf目录下也是没有的,需要复制cp hive-log4j.properties.template hive-log4j.proprties
  • 编辑 vim hive-log4j.proprties,修改日志文件的目录

hive.log.dir=/opt/hive-1.2.1/log/${user.name}

  • 这一步最为重要,必须要修改:

log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

  • 如果没有修改的话会出现:

WARNING: org.apache.hadoop.metrics.EventCounter is deprecated.
please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.

  • 此时启动hive:

root@Ubuntu2:/opt/hive-1.2.1/conf# hive

hadoop版本对应hive版本_xml_04

  • 发现仍然报错,百度system:java.io.tmpdir,网页上显示Linux下面的路径为/tmp/,因此把hive-site.xml文件里面的三个system:java.io.tmpdir改成绝对路径/tmp/ ,同时将紧随其后的${system:user.name} 中的”system:”删除(有2处)。
vim /opt/hive-1.2.1/conf/hive-site.xml

hadoop版本对应hive版本_ubuntu_05

  1. 重新启动hive,发现哎呀,仍然有错,错误如下:
  2. hadoop版本对应hive版本_hadoop版本对应hive版本_06

  3. 删除/opt/hadoop-2.6.4/share/hadoop/yarn/lib目录下的jline-0.9.94.jar文件
    重新启动,成功!
  4. hadoop版本对应hive版本_ubuntu_07

注:hive是建立在hdfs之上的,所以启动hive前,请确保hdfs已经启动。