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——简介的更多相关文章

  1. Hive入门学习--HIve简介

    现在想要应聘大数据分析或者数据挖掘岗位,很多都需要会使用Hive,Mapreduce,Hadoop等这些大数据分析技术.为了充实自己就先从简单的Hive开始吧.接下来的几篇文章是记录我如何入门学习Hi ...

  2. 大数据 Hive 简介

    第一部分:Hive简介 什么是Hive •Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. •本质是将SQL转换为MapReduce程序 ...

  3. Hive简介及使用

    一.Hive简介 1.hive概述 Apache Hive™数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集. 可以将结构投影到已存储的数据中.提供了命令行工具和JDBC驱动 ...

  4. Hadoop入门第五篇:Hive简介以及部署

    标签(空格分隔): Hadoop Hive hwi 1.Hive简介   之前我一直在Maxcompute上进行大数据开发,所以对数仓这块还算比较了解,在接受Hive的时候基本上没什么大的障碍.所以, ...

  5. 数据仓库Hive(一)——hive简介,产生,安装

    1.Hive简介 数据仓库 解释器.编译器.优化器等 运行时,元数据存储在关系型数据库里面 1.1数据库和数据仓库的区别 数据库需要立即返回结果,数据仓库不需要 数据仓库能收纳各种数据源,而数据库只能 ...

  6. Hive简介

    实验简介 我们本节课程主要介绍 Hive 的相关知识,将会涉及以下内容: Hive 的定义 Hive 的体系结构 Hive 与关系数据库的区别 Hive 的应用场景 Hive 的存储 一.什么是 Hi ...

  7. 【Hive学习之一】Hive简介

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...

  8. HIVE简介及安装

    一.简介 百度百科HIVE定义: hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运 ...

  9. Apache Hive 简介及安装

    简介 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件 映射为一张数据库表,并提供类 SQL 查询功能. 本质是将 SQL 转换为 MapReduce 程序. 主要用途:用来 ...

随机推荐

  1. HarmonyOS系统概述

    HarmonyOS系统概述 系统定位 HarmonyOS是一款"面向未来".面向全场景(移动办公.运动健康.社交通信.媒体娱乐等)的分布式操作系统.在传统的单设备系统能力的基础上, ...

  2. 模型压缩95%:Lite Transformer,MIT韩松等人

    模型压缩95%:Lite Transformer,MIT韩松等人 Lite Transformer with Long-Short Range Attention Zhanghao Wu, Zhiji ...

  3. 四、提高SSH服务安全

    配置基本安全策略 [root@proxy ~]# vim /etc/ssh/sshd_config    //调整sshd服务配置 .. .. Protocol 2                   ...

  4. Centos7 安装 Cacti 1.2

    1. 安装web server(略) 注意系统时间/时区 ntp server是否定时同步 2. 安装 mysql 5.7 (略) 安装成功后 2.1 编辑 my.ini 文件在 [mysqld] 下 ...

  5. UF_OBJ 对象操作

    Open C uc5027uc5028uc5029uc502auc502euc502muc502nuc502ruc5203uf5025uf5026UF_OBJ_ask_cre_mod_versions ...

  6. 【MySQL】MySQL Workbench 8.0 CE 界面汉化

    汉化前: 找到这个文件: 打开文件,复制下面这段替换进去保存,重新打开软件即可:(*改之前备份一下) <?xml version="1.0"?> <data> ...

  7. 【CMD】修改文件夹的属性

    将 d:\文件夹 添加 只读 属性: attrib +r d:\文件夹 /d 将 d:\文件夹 去掉 只读 属性: attrib -r d:\文件夹 /d 其他属性可以参考帮助文件:

  8. 【SQLite】教程05-SQLite创建数据库、附加、分离数据库

    创建数据库 .quit命令 退出sqlite 提示符 .quit .dump 命令 使用 SQLite .dump 点命令来导出完整的数据库在一个文本文件中,如下所示: sqlite3 Test.db ...

  9. 『无为则无心』Python基础 — 2、编译型语言和解释型语言的区别

    目录 1.什么是计算机语言 2.高级语言中的编译型语言和解释型语言 (1)编译型语言 (2)解释型语言 (3)编译型语言和解释型语言执行流程 3.知识扩展: 4.关于Python 1.什么是计算机语言 ...

  10. Oracle几大后台进程

    pmon,smon,dbwr,lgwr,reco,ckpt.六大核心进程.无论哪个进程出现故障,都会导致数据库实例崩溃.如果杀掉某个进程,在ALERT LOG中会发现各种错误. MMAN(Memory ...