一、虚拟机环境准备
准备一台虚拟机,操作系统 centos7.0
安装 jdk1.8安装 mysql安装 hadoop
二、Hive简介
1、hive是建立在hadoop之上的数据仓库,一般用于对大型数据集的读写和管理,存在hive里的数据实际上就是存在HDFS上,都是以文件的形式存在,不能进行读写操作,所以我们需要元数据或者说叫schem来对hdfs上的数据进行管理。
2、Hive的优势和特点
- 提供了一个简单的优化模型 HQL类SQL语法,
- 简化MR开发 支持在不同的计算框架上运行
- 支持在HDFS和HBase上临时查询数据
- 支持用户自定义函数、格式
- 成熟的JDBC和ODBC驱动程序,用于ETL和BI
- 稳定可靠(真实生产环境)的批处理
- 有庞大活跃的社区
三、Hive 环境搭建
下载地址 http://archive.cloudera.com/cdh5/cdh/5/ 需要的软件包:hive-1.1.0-cdh5.14.2.tar.gz
1、将软件包上传到 Linux 系统指定目录下,我的是放在 opt 目录下。
2、解压到指定的目录:/opt
- tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz -C /opt
3、配置环境变量
- 输入指令:vi /etc/profile
- 添加如下两行:
export HIVE_HOME=/opt/hive-1.1.0-cdh5.14.2 //为hive的安装路径
export PATH=$PATH:$HIVE_HOME/bin
- 输入: source /etc/profile ,使其生效
4、相关配置文件修改
- 1)进入到你的 hive 安装包的 conf 目录下
cd /opt/hive-1.1.0-cdh5.14.2/conf/ - 2)新建hive-site.xml文件: vi hive-site.xml,添加如下内容:
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive/warehouse</value>
</property>
<-- mysql 数据配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExi
st=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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
<-- 配置 Hive 临时文件存储地址 -->
<property>
<name>hive.exec.scratchdir</name>
<value>/home/hadoop/hive/data/hive-${user.name}</value>
<description>Scratch space for Hive jobs</description>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/hadoop/hive/data/${user.name}</value>
<description>Local scratch space for Hive
jobs</description>
</property>
</configuration>
- 3)修改 hive-env.xml
修改文件名: mv hive-env.sh.template hive-env.sh
输入:vi hive-env.sh
修改如下内容:
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/opt/hadoop-2.6.0-cdh5.14.2
<!--hadoop安装目录-->
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/hive-1.1.0-cdh5.14.2/conf
<!--hive配置文件目录-->
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/opt/hive-1.1.0-cdh5.14.2/lib
<!--hive lib 目录-->
- 4)修改 hive-log4j.properties
重命名 hive-log4j.properties (去掉.template)
mv hive-log4j.properties.template hive-log4j.properties
vi hive-log4j.properties
可以按按 20gg 快速定位 ,修改 hive-log4j.properties 以下内容:
hive.log.dir=/opt/hive-1.1.0-cdh5.14.2/logs
- 5)新建配置文件需要的目录:
mkdir /opt/hive-1.1.0-cdh5.14.2/warehouse
mkdir /opt/hive-1.1.0-cdh5.14.2/logs
- 6)将mysql-connector-java-5.1.48-bin.jar包拖到$HIVE_HOME/lib目录下
注意:启动 hive 之前要先启动 mysql
进入 mysql,为 hive 创建一个 mysql 用户user,并且赋予权限(root用户可以不用1、4两步)
create user 'hive'@'%' identified by 'hive';
grant all on *.* to 'hive'@'hadoop101' identified by 'hive';
set password for hive@hadoop101=password('hive');
flush privileges;
5、启动 hive
- 1)初始化mysql数据库
输入指令: schematool -initSchema -dbType mysql - 2)输入: hive,进入hive命令行模式
- 3)验证元数据是否可用
输入:show databases;
如上所示,表示配置成功,进入 mysql 中,可以查看有 hive 数据库,其中
存储着 hive 的元数据信息: