什么是 Hive?

Hive 是由 FaceBook 开源用于解决少量数据结构化日志的数据统计。Hive是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类SQL查询功能。Hive 处理的数据存储在 HDFS 上,分析数据的底层实现是 MapReduce ,执行程序运行的是YARN。

构建在Hadoop之上的数据仓库:

  使用 HQL 作为查询接口

  使用 HDFS 存储

  使用 MapReduce 计算

本质是:将 HQL 转化成 MapReduce 程序

Hive架构

用户接口:Client

CLI(hive shell)、JDBC/ODBC(Java访问hive),WEBUI(浏览器访问hive)

元数据:Metastore

元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。

默认存储在自带的derby数据库中,推荐采用MySQL存储Metastore

Hadoop

使用HDFS进行存储,使用MapReduce进行计算

驱动器:Driver

包含:解析器、编译器、优化器、执行器

解析器:将SQL字符串转换成抽象语法AST,这一步地般用第三方工具完成,比如antlr,对AST进行语法分析,比如表是否存在、字段是否存在、主义是否有误(比如select 中被判定为聚合的字段在group by中是否出现)

编译器:将AST编译生成逻辑执行计划

优化器:对逻辑执行语计划进行优化

执行器:把逻辑执行计划转换成可以运行的物理计划。对于Hive 来说,就是MR/TEZ/Spark

Hive的使用场景

数据的离线处理:比如:日志分析,海量结构化数据离线分析...

Hive的执行延迟比较高,因此hive常用于数据分析的,对实时性要求不高的场合

Hive优势在于处理大数据,对于处理小数据没有优势,因为hive的执行延迟比较高

Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。

Hive- 大数据仓库Hive的更多相关文章

  1. 大数据系列之数据仓库Hive安装

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  2. 大数据系列之数据仓库Hive命令使用及JDBC连接

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  3. 大数据系列之数据仓库Hive原理

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  4. 大数据系列之数据仓库Hive中分区Partition如何使用

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  5. [Hadoop大数据]——Hive初识

    Hive出现的背景 Hadoop提供了大数据的通用解决方案,比如存储提供了Hdfs,计算提供了MapReduce思想.但是想要写出MapReduce算法还是比较繁琐的,对于开发者来说,需要了解底层的h ...

  6. 一脸懵逼学习Hive(数据仓库基础构架)

    Hive是什么?其体系结构简介*Hive的安装与管理*HiveQL数据类型,表以及表的操作*HiveQL查询数据***Hive的Java客户端** Hive的自定义函数UDF* 1:什么是Hive(一 ...

  7. Hive:数据仓库工具,由Facebook贡献。

    Hadoop Common: 在0.20及以前的版本中,包含HDFS.MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Co ...

  8. 基于Hadoop的数据仓库Hive

    Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理.特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hi ...

  9. 对数据仓库Hive的一些认识

    首先我们得明白什么是数据仓库?   数据仓库,英文名称为Data warehouse,可简写为DW或DWH.数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Supp ...

  10. 入门大数据---Hive是什么?

    这篇文章主要介绍Hive的概念. 简介: Hive中文名叫数据仓库管理系统,之前我们操作MapReduce必须通过编写代码或者通过特殊命令来实现,有了Hive我们通过常用的SQL语句就能操作MapRe ...

随机推荐

  1. tensorflow-gpu 1.13 提示找不到 libcublas.so.10.0 的问题

    tensorflow-gpu 使用 1.13.1,cuda-10-0已安装好,但启动时依然报错 ImportError: libcublas.so.10.0: cannot open shared o ...

  2. swift - 全屏pop手势

    UINavigationController系统自带有侧滑手势,但是这个手势第一点只能边缘侧滑才可以有效,第二点当手动隐藏系统的导航时,这个手势就不能生效了 为了能到达到全屏pop的效果这里有2中解决 ...

  3. Highways - poj 2485 (Prim 算法)

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 24383   Accepted: 11243 Description T ...

  4. 【WPF学习笔记】之WPF基础:依赖关系属性和通知

    这些天来,对象似乎已经忙得晕头转向了.每个人都希望它们做这做那.Windows® Presentation Foundation (WPF) 应用程序中的典型对象会接到各种各样不同的请求:有要求绑定到 ...

  5. 使用Erlang实现简单的排序算法:快速排序,冒泡排序,插入排序

    [排序算法] -module(sort). -compile(export_all). %%快速排序 qsort([]) -> []; qsort([Pivot|T]) -> qsort( ...

  6. Java -- 数字

    @.运用BigDecimal处理Double类型的算术运算的精度问题 原文:https://blog.csdn.net/j754379117/article/details/52238396 可使用 ...

  7. Shell 编程基础 --语法高速入门

    简单的说shell就是一个包括若干行Shell或者Linux命令的文件.对于一次编写,多次使用的大量命令,就能够使用单独的文件保存下来,以便日后使用.通常shell脚本以.sh为后缀.第一行一定要指明 ...

  8. 【python系列】python画报表(Chartkick、Flask)(附中文乱码解决方式)

    chartkick 能够画 javascript 报表, 并且比較美观.可是网上搜了下.非常难找到 python 版本号的,于是查了些资料,摸索了下. 对 Flask 也不非常熟悉,这里就仅仅抛砖引玉 ...

  9. Xcode8:"subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0" 的警告

    运行xcode8遇到这个警告: subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_lev ...

  10. CentOS 7.x samba 服务器安装

    以下以root用户执行 1.安装: # yum install samba samba-client -y   2.设置开机启动: # systemctl enable smb.service ln ...