文章预览:

  • 1.Hive简介
  • 2.Hive部署(前提是部署好Hadoop)


1.Hive简介

1.地址
官网:http://hive.apache.org/ GitHub地址:github.com/apache/hive CDH版本:http://archive.cloudera.com/cdh5/cdh/5/ 中下载hive-1.1.0-cdh5.16.2.tar.gz
软件使用上Hadoop、Hive、Sqoop、HBase等等因为兼容性这些选择的尾号一定是一样的,Spark除外。

2.简述
1)由facebook开源 用来解决海量的结构化日志的统计问题。
2)Hive是构建在Hadoop之上的,这块的Hadoop指的是狭义即:HDFS(Hive的数据存放位置)、MR(Hive作业也就是SQL是通过Hive的框架翻译成MR作业)、YARN(Hive的作业是提交到YARN上面去运行的)。

2.作用

hadoop中hive的应用 hadoop hive_hive


如上图:distributed storage

说明:它不仅仅可以存储在Hadoop上,也包括比如像S3、OSS、COS这类存储系统上。

3.组件组成
分布式存储+metastore(一般使用MySQL)。

4.适用场景
1)批处理(离线处理)
2)延时性很大的
3)尽量少涉及到update或者delete操作,虽然Hive支持update和delete

2.Hive部署(前提是部署好Hadoop)


hadoop中hive的应用 hadoop hive_Hive_02

1.如上图直接解压到/home/app/目录下,然后做一个软连接,写入到个人环境变量文件~/.bashrc下

export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.16.2
export PATH=$HIVE_HOME/bin:$PATH

hadoop中hive的应用 hadoop hive_Hadoop_03


2.hive-env.sh.template拷贝一份更名为hive-env.sh

3. 需要一个hive的配置文件hive-site.xml,touch创建好hive-site.xml文件,如下图:

hadoop中hive的应用 hadoop hive_Hadoop_04


4.然后在GitHub(https://github.com/apache/hive/blob/master/data/conf/hive-site.xml)上拷贝一份头部的信息,在hive-site.xml文件中加入下图中的头部信息,如下图所示:

hadoop中hive的应用 hadoop hive_hadoop中hive的应用_05


配置到这里已经可以启动并使用Hive了,是因为Hive中有一个自带默认的元数据库:Derby,此数据库特点是在相同路径下不能同时起两个session,所以在生产上我们都是用MySQL作为Hive的元数据库。因此,还需要以下的配置将Hive的元数据库换成MySQL的。接着往下:

5.部署MySQL数据库:

创建Hive数据库以及授权:

create database hive default character set utf8;
GRANT ALL PRIVILEGES ON hive .* TO 'hive '@'%' IDENTIFIED BY 'hive123' ;

5.给hive-site.xml文件中添加以下参数:

hadoop中hive的应用 hadoop hive_Hive_06


(上图配置的参数来源:https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration

hadoop中hive的应用 hadoop hive_hadoop中hive的应用_07


最后两个配置参数显示数据库字段名信息和显示当前的数据库名信息的配置可参考:https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

hadoop中hive的应用 hadoop hive_hive_08


6.拷贝jdbc的jar包至hive的lib目录下,使得hive可以连接MySQL数据库,如下图:

hadoop中hive的应用 hadoop hive_Hive_09

7.启动Hive

hadoop中hive的应用 hadoop hive_Hadoop_10