1、Hive是什么
1.概述.
Apache Hive数据仓库软件提供对存储在分布式中的大型数据集的查询和管理,它本身是建立在Apache Hadoop之上,主要提供以下功能:
(1)它提供了一系列的工具,可用来对数据进行提取/转化/加载 (ETL);
(2)是一种可以存储、查询和分析存储在HDFS(或者HBase)中的大规模数据的机制;
(3)HQL查询是通过MapReduce来完成的[select *from 不会 ]
2.数据仓库与数据区别 hive产生就是为了解决MR的结构数据分析问题,完成海量数据的存储
2.1.概念:
数据库:数量小结构化数据存储 更倾向于精细化的数据管理 数据存储的时候分库分表存储 有事务的概念
数据仓库:数据量大的结构数据存储 倾向于数据的管理没有事务的概念
2.2.使用: 数据 库:mysql/oracle/sql server 标准sql 数据仓库:hive中-----hql 方言sql
2.3.应用场景: 数据库:OLTP On-Line Transaction Processing联机事务处理 insert delete update 数据仓库:OLAP:On-Line Analysis Processing 联机分析事物处理 select 在hive中不支持update delete 但是支持insert
**2.4.数据量 数据库:**集中式 数据量比较小 数据仓库:分布式 数据量大 2.5.延时性 数据库:实时 数据仓库:离 线的
3.总结
3.1 hive3一个数据仓库, hive基于hadoop,hive的终的原始数据存储在hdfs 3.2 提供一种类似于sql语句的方式来完成mapreduce ,Hive的本质是将 SQL 语句转换为 MapReduce 任 务运行
3.3 使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据
Hive架构原理
数据存储位置
Hive 是建立在 Hadoop 之上的,所有 Hive 的数据都是存储在 HDFS 中的。而数据库则可以将数据保存在块设备或者本地文件系统中。
执行延迟
Hive 在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致 Hive 执行延迟高的因素是 MapReduce框架。由于MapReduce 本身具有较高的延迟,因此在利用MapReduce 执行Hive查询时,也会有较高的延迟。相对的,数据库的执行延迟较低。当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。
可扩展性
由于Hive是建立在Hadoop之上的,因此Hive的可扩展性是和Hadoop的可扩展性是一致的(世界上最大的Hadoop 集群在 Yahoo!,2009年的规模在4000 台节点左右)。而数据库由于 ACID 语义的严格限制,扩展行非常有限。目前最先进的并行数据库 Oracle 在理论上的扩展能力也只有100台左右。
Hive安装
使用mysql数据库替代Derby来存储元数据,以解决多用户并发访问问题
2.Hive安装地址
1.Hive官网地址
2.文档查看地址
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
3.下载地址
http://archive.apache.org/dist/hive/
4.github地址
https://github.com/apache/hive
Hive安装部署
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/目录下面
[root@hadoop102 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C
/opt/module/
(3)修改apache-hive-1.2.1-bin.tar.gz的名称为hive
# 1.切换到module目录
[root@hadoop102 software]$ cd ../module
# 2.修改名称
[root@hadoop102 module]$ mv apache-hive-1.2.1-bin