Hive概要

Hive概要

一:产生背景

在这里插入图片描述 虽然hadoop有效的解决了大规模数据的存储和统计的问题,但是MapReduce编程十分繁琐,在大多情况下,每个MapReduce程序需要包含Mapper、Reduceer和一个Driver,之后需要打成jar包扔到集群上运 行。如果mr写完之后,且该项目已经上线,一旦业务逻辑发生了改变,可能就会带来大规模的改动代码,然后重新打包,发布,非常麻烦(这种方式,也是最古老的方式),而hive的出现有效的解决的这些问题,hive为数据加上了schema,可以直接通过sql的方式处理数据,hive把HQL转化为了mapreduce任务。

二:Hive是什么

  • hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
  • Hive是建立在Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的mapper 和 reducer 无法完成的复杂的分析工作。

三:Hive的优缺点

优点:延展性高 使用扩展性 自定义函数
缺点:
1.不支持delete和updata,支持insert但是效率低
2.不支持事务
3.不支持实时查询

四:hive的架构

hive在hadoop中的位置:

在这里插入图片描述hive的架构图:
在这里插入图片描述

1) 用户接口层

接口:

  1. CLI:命令行界面,Cli 启动的时候,会同时启动一个 Hive 副本。
  2. JDBC客户端:封装了Thrift,java应用程序,可以通过指定的主机和端口连接到在另一个进程中运行的hive服务器
  3. ODBC客户端:ODBC驱动允许支持ODBC协议的应用程序连接到Hive。
  4. WUI 接口:是通过浏览器访问 Hive

2)Thrift Server 跨语言服务层

基于socket通讯,支持跨语言。Hive Thrift服务简化了在多编程语言中运行Hive的命令。绑定支持C++,Java,PHP,Python和Ruby语言。

3)核心驱动层

  • 解释器:将sql语句转化为抽象的语法树,
  • 编译器:将抽象语法树编译为mapreduce任务,map和reduce模板
  • 优化器:对编译结果进行优化
  • 执行器:对优化结果最终执行

4)元数据层

元数据:描述数据的数据
hive元数据:描述表存储的真实数据的数据
hive存储:
表数据:
表中存储的数据不包括表结构数据,例如数据的描述年龄,姓名,班级…
元数据
用于描述表述表数据的数据,例如数据的描述年龄,姓名,班级…
数据库信息
表的名字,表的列和分区及其属性,表的属性,表的数据所在目录等。
元数据用于存放Hive库的基础信息,它存储在关系数据库中,如 mysql、derby(单用户模式中可以使用,不适用与生产)
表数据存储在 HDFS 中,大部分的查询由 MapReduce 完成

五:数据库和数据仓库的区别

数据仓库:

  • 面向主题的
  • 用于存储海量数据的,对海量数据进行精细化的管理

数据仓库 和 数据库的区别从三方面说:
概念:
数据仓库 更加倾向于数据管理,并且针对的是海量数据;数据库 存储小批量的结果数据
应用场景上:
数据仓库:
olap:On line Analysis Processing 分析型处理–联机分析处理
擅长数据分析 查询
hive中不支持delete 和 update,支持insert但效率极低
数据库:
oltp:On line Transaction Processing 操作型处理–联机事务处理
增insert 删delete 改update
模式上:
数据仓库:读模式
数据读取的时候,进行数据校验
数据库:写模式
数据写入的时候进行数据校验
事务支持上:
数据库有事务概念
数据仓库 不支持事务的

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值