Hadoop开发案例第9章 Hadoop数据仓库Hive
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可以进行查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 析工作。 和 reducer 来处理内建的 mapper 和 reducer以满足无法完成的复杂的分
Hive数据类型
Hive具有支持的数据类型,主要分为两种:基本数类型和复杂数据类型,复杂数据类 型也可以成为集合数据类型。
Hive系统架构
用户接口,包括CLI,JDBC/ODBC,WebUI。 元数据存储,通常是存储在关系数据库如MySQL,DERBY中。 解释器、编译器、优化器、执行器。 Hadoop:用 HDFS 进行存储,利用 MapReduce 进行计算。 用户接口主要有三个:CLI,JDBC/ODBC和 WebUI Hive 将元数据存储在数据库中 (Metastore) ,目前只支持 MYSQL 、 DERBY 。 Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表 等),表的数据所在目录等。 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化 以及查询计划( plan )的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。 Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询, 比如 select * from table 不会生成 MapReduce任务)。
查询语言 数据存储位置 数据格式
HiveQL HDFS 用户定义
SQL Raw Device or 本地FS 系统决定
数据更新
索引 执行 执行延迟 可扩展性 数据规模
不Leabharlann Baidu持
新版本有,但弱 MapReducer 高 高 大
支持
有 Executor 低 低 小
Hive系统架构
Hive的系统架构组成主要分四个部分:用户接口部分、存放元数据的数据库、解 释器,编译器、存放数据的HDFS系统,
Hive与传统数据库对比
Hive作为大数据环境下的数据仓库工具,和传统的数据库虽然有很多相似之处
,但是还是有很多不同之处,在传统的数据库中,表的模式是在数据加载的时候强 行确定好的,而Hive在加载的过程中不对数据进行任何验证操作,加载过程比传统 数据库快一些,具体其他不同之处。
Hive与传统数据库对比
Hive简介
Hive 本身是建立在 Hadoop体系结构上的数据仓库基础构架,可以将结构化的数据
文件映射为一张数据库表,并提供完整的QL语句,把QL语句转化成 MapReduce程序提 交给Hadoop集群完成相关任务。它提供了一系列的工具,可以用来进行数据提取转化 加载(ETL ),这是一种可以存储、查询和分析并存储在 Hadoop中的大规模数据处 理的机制。Hive 定义了简单的类 SQL 查询语言,称为 QL ,熟悉 SQL 的用户都
引言
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据 库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,
Hive在Hadoop之上提供了数据查询的能力,主要解决非关系型数据查询问题。本章通
过对Hive的概述、Hive的架构、Hive Shell命令、Hive API操作的讲解,让学生深刻 理解和运用Hive系统。
Hive存储和压缩
首先,Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自
由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分 隔符,Hive 就可以解析数据。 其次,Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型: Table,External Table,Partition,Bucket。
(1)基本数据类型,主要分为4类,如下
tinyint/smallint/int/bigint float/double boolean string
Hive数据类型
(2)复杂数据类型,主要分为3类,如下 Array
Map
Struct 注意:没有date/datetime类型
Hive Metastore
Metastore是Hive元数据的集中存放地。 Metastore默认使用内嵌的derby数据库作为存储引擎
Derby引擎的缺点:一次只能打开一个会话
使用MySQL作为外置存储引擎,多用户同时访问 Metastore用来存储hive的元数据信息,默认情况下是和hive绑定的,部署在同一 个JVM中,将元数据存储到derby中。使用内嵌数据库没有办法为hive开启多个实例。 如果Hive配置成MySQL数据库,可以将数据独立出来在多个实例之间共享。