什么是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容易使用,可扩展,有弹性
扫描二维码关注公众号,回复: 12418221 查看本文章
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/目录下面
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
然后在/etc/profile文件里配置hive的bin目录。
集群配置
必须启动hdfs和yarn
start-dfs.sh
start-yarn.sh #若不启动yarn则无法完成建表操作。因为本质上会把sql语句转换成mr程序。
Hive基本操作
由于配置了环境变量,可以直接在任意路径下输入hive
命令,启动hive
hive
查看(选择)数据库、查看(选择、建)表、插入数据等,与MySQL的语法一致
show dababases; #有一个default数据库