Hive——简介
Hive——简介
Hive 是基于 Hadoop 构建的一套数据仓库分析系统,它提供了丰富的 SQL 查询方式来分析存储在 Hadoop 分布式文件系统中的数据, 可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能.可以将 SQL 语句转换为 MapReduce 任务进行运行,通过自己的 SQL 去 查询分析需要的内容,这套 SQL 简称 Hive SQL。
Hive的产生背景及介绍
产生背景
1)MapReduce编程的不便性(MapReduce编程十分繁琐,而且不方便修改)
2)HDFS上缺少Schema
Hive是什么
1)由FaceBook开源,最初用于解决海量结构化的日志数据统计问题
2)构建在hadoop上的数据仓库
3)Hive定义了一种类SQL查询语言:HQL(类似sql但不完全相同)
4)通常用于进行离线数据处理(早期底层采用mapreduce)
5)底层支持多种不同执行引擎
6)支持多种不同的压缩格式、存储格式以及自定义函数
(Hive现在的底层执行引擎支持很多包括spark(Hive on spark),mapreduce(Hive on mapreduce)、Tez(Hive on Tez))
为什么要用Hive(Hive的优势)
1)简单、容易上手(提供了类似sql查询语言hql)
2)为超大数据集设计的计算/存储扩展能力(MR计算,HDFS存储)
3)统一的元数据管理(可于Presto/Impala/SparkSQL等共享数据)
Hive的发展历程
在Hive的发展历程中,不得不提的就是Stinger
Stinger分了几个阶段来做:Phase 1、2、3 ,Stringer.next;这几个阶段对Hive性能的提升是非常至关重要的
07/08 facebook
13/05 hive-0.11 Stinger Phase 1 加入了ORC/HiveServer2
13/10 hive-0.12 Stinger Phase 2 ORC improvement(对ORC做了些改善)
14/04 hive-0.13 Stinger Phase 3 Tez/Vectorized query engine(加入了Tez和支持向量化的查询)
14/11 hive-0.14 Stinger.next Phase 1 Cost-based optimizer(Cost-based简称CBO)
(The Stinger Initiative making Apache Hive 100 times faster)
Hive系统架构

Command-line shell:shell操作客户端
Trift/JDBC:Thrift代表一种协议/服务端启起来,客户端可以通过JDBC的方式去访问
Driver:接收sql做相应的分析处理:
1)首先将SQL语句转换成抽象语法树(抽象语法树拿到是不能执行的)
2)将抽象语法树转换成逻辑执行计划
3)对逻辑执行计划进行优化,形成物理执行计划,优化之后才能够变成作业去运行
MapReduce:底层执行引擎
HadoopStorage:计算结果输出存储
Metastore:元数据存储
1)metastore默认是存放在derby库中,通常现实中部署都是存放在mysql库中。其中生产上存储metastore的mysql要做HA.
2)metastore包括的内容:
1>:database: name,location,owner,name
2>:table: name,owner,location,column name/type/index,createtime
3)hive的metastore是和Spark/impala通用的,例如在hive中创建一张表,在Spark/impala中也能使用,反之Spark/impala创建的表在hive中也能使用。
Hive部署架构

注意点:1)生产上部署时Hive的元数据存储的数据库要做主备。
2)Hive不需要部署在每台机器上,一台就行,他就是一个客户端,解析你的sql生成mr交给yarn运行
Hive——简介的更多相关文章
- Hive入门学习--HIve简介
现在想要应聘大数据分析或者数据挖掘岗位,很多都需要会使用Hive,Mapreduce,Hadoop等这些大数据分析技术.为了充实自己就先从简单的Hive开始吧.接下来的几篇文章是记录我如何入门学习Hi ...
- 大数据 Hive 简介
第一部分:Hive简介 什么是Hive •Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. •本质是将SQL转换为MapReduce程序 ...
- Hive简介及使用
一.Hive简介 1.hive概述 Apache Hive™数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集. 可以将结构投影到已存储的数据中.提供了命令行工具和JDBC驱动 ...
- Hadoop入门第五篇:Hive简介以及部署
标签(空格分隔): Hadoop Hive hwi 1.Hive简介 之前我一直在Maxcompute上进行大数据开发,所以对数仓这块还算比较了解,在接受Hive的时候基本上没什么大的障碍.所以, ...
- 数据仓库Hive(一)——hive简介,产生,安装
1.Hive简介 数据仓库 解释器.编译器.优化器等 运行时,元数据存储在关系型数据库里面 1.1数据库和数据仓库的区别 数据库需要立即返回结果,数据仓库不需要 数据仓库能收纳各种数据源,而数据库只能 ...
- Hive简介
实验简介 我们本节课程主要介绍 Hive 的相关知识,将会涉及以下内容: Hive 的定义 Hive 的体系结构 Hive 与关系数据库的区别 Hive 的应用场景 Hive 的存储 一.什么是 Hi ...
- 【Hive学习之一】Hive简介
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...
- HIVE简介及安装
一.简介 百度百科HIVE定义: hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运 ...
- Apache Hive 简介及安装
简介 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件 映射为一张数据库表,并提供类 SQL 查询功能. 本质是将 SQL 转换为 MapReduce 程序. 主要用途:用来 ...
随机推荐
- 计图MPI分布式多卡
计图MPI分布式多卡 计图分布式基于MPI(Message Passing Interface),主要阐述使用计图MPI,进行多卡和分布式训练.目前计图分布式处于测试阶段. 计图MPI安装 计图依赖O ...
- 孟老板 BaseAdapter封装 (三) 空数据占位图
BaseAdapter封装(一) 简单封装 BaseAdapter封装(二) Header,footer BaseAdapter封装(三) 空数据占位图 BaseAdapter封装(四) PageHe ...
- 码农飞升记-04-OracleJDK 与 OpenJDK 的区别和联系以及 OracleJDK builds 与其他 OpenJDK builds 的选择问题
在前两篇 OracleJDK是什么?OracleJDK的版本怎么选择? 和 OpenJDK是什么? 中分别介绍了 OracleJDK 和 OpenJDK 的来历以及概念,那可能就有小伙伴要问了:那我到 ...
- 这应该是把Java内存区域讲的最清楚的一篇文章
基本问题: 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄和直接指针两种方式) 拓展问题: ...
- .NET Core/.NET5/.NET6 开源项目汇总4:CMS、Blog项目
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- Windows 11,一个新功能,一场新屠杀
6月24日,微软正式公布了新一代操作系统:Windows 11.这次的更新距离上一代操作系统Windows 10的发布,隔了有6年之久. 在新一代的操作系统中,包含了这些亮点: 采用了全新的UI设计. ...
- typescript 中的 infer 关键字的理解
infer 这个关键字,整理记录一下,避免后面忘记了.有点难以理解呢. infer infer 是在 typescript 2.8中新增的关键字. infer 可以在 extends 条件类型的字句中 ...
- Vue开发项目全流程
只记录vue项目开发流程,不说明怎样安装node和vue-cli等 确认安装 安装好node之后,可查看是否安装成功,有版本则安装成功.输入node -v 查看vue是否安装成功,有版本则安装成功.输 ...
- R语言--图形基本使用1
1 使用图形 1.1 交互式绘图 使用的是内置数据集:mtcars 画出散点图:plot(mtcars$mpg,mtcars$wt) 给图形加标题:title("车辆耗油与重量之间的关系&q ...
- 2、SpringBoot整合之SpringBoot整合servlet
SpringBoot整合servlet 一.创建SpringBoot项目,仅选择Web模块即可 二.在POM文件中添加依赖 <!-- 添加servlet依赖模块 --> <depen ...