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/目录下面
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数据库