Hadoop生态组件之Hive环境搭建--第九讲

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
该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。
hive.exec.scratchdir
该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。

 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






你可能感兴趣的:(hadoop)