@
目录
- 什么是Hive
- Hive的特点
- Hive和数据库比较
- 数据存储位置
- 数据更新
- Hive安装
- Hive安装部署
- 1.Hive安装及配置
- 集群配置
- Hive基本操作
什么是Hive
Hive:由Facebook开源用于解决海量结构化日志的数据统计。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 本质是:将HQL转化成MapReduce程序
1)Hive处理的数据存储在HDFS 2)Hive分析数据底层的实现是MapReduce 3)执行程序运行在Yarn上 4)Hive只能分析结构化的数据!Hive在Hadoop之上,使用hive的前提是先要安装Hadoop
Hive的特点
- ①Hive并不是一个关系型数据库
- ②不是基于OLTP(在线事务处理)设计 OLTP设计的软件: 侧重点在事务的处理,和在线访问。一般RDMS都是基于OLTP设计
- ③Hive无法做到实时查询,不支持行级别更新(update,delete)
- ④Hive要分析的数据存储在HDFS,hive为数据创建的表结构(schema),存储在RDMS
- ⑤Hive基于OLAP(在线分析处理)设计 OLAP设计的软件: 侧重点在数据的分析上,不追求分析的效率!
- ⑥Hive使用类SQL,称为HQL对数据进行分析
- ⑦Hive容易使用,可扩展,有弹性
Hive和数据库比较
由于 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。
数据存储位置
Hive 是建立在 Hadoop 之上的,所有 Hive 的数据都是存储在 HDFS 中的。而数据库则可以将数据保存在块设备或者本地文件系统中。
数据更新
由于Hive是针对数据仓库应用设计的,而数据仓库的内容是读多写少的。因此,Hive中不建议对数据的改写,所有的数据都是在加载的时候确定好的。而数据库中的数据通常是需要经常进行修改的,因此可以使用 INSERT INTO … VALUES 添加数据,使用 UPDATE … SET修改数据。
Hive安装
Hive下载地址:http://archive.apache.org/dist/hive/
Hive安装部署
①保证有JAVA_HOME,HADOOP_HOME ②将bin配置到PATH中,在环境变量中提供HIVE_HOME
1.Hive安装及配置
(1)把apache-hive-1.2.1-bin.tar.gz上传到linux的/opt/software目录下 (2)解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面
代码语言:javascript复制tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
然后在/etc/profile文件里配置hive的bin目录。
集群配置
必须启动hdfs和yarn
代码语言:javascript复制start-dfs.sh
start-yarn.sh #若不启动yarn则无法完成建表操作。因为本质上会把sql语句转换成mr程序。
Hive基本操作
由于配置了环境变量,可以直接在任意路径下输入hive
命令,启动hive
hive
查看(选择)数据库、查看(选择、建)表、插入数据等,与MySQL的语法一致
代码语言:javascript复制show dababases; #有一个default数据库