hive基础学习

hive产生

1、如果用mapreducer处理格式化数据是比较麻烦的开发周期比较长,成本比较高,而对于格式化数据来说还是sql跟擅长,而且成本比较低,于是方言版sql ,hql出来了

2、hive是基于hadoop的 数据存储在hdfs 的 并且对客户端提供hql支持 将hql语句转换为mapreduce任务的

hive 依赖于hadoop的分布式数据仓库

hive特点

  1. hive是由facebook实现并开源的

  2. hive是基于hadoop的一个数据仓库工具
    基于hadoop:
    hive中的表中的数据 存储在hdfs上的 存储完全依赖于hdfs
    hive最终计算使用的默认mapreduce
    资源调度 yarn
    数据仓库工具:data warehouse dw
    存储数据的 更加像一个数据的管理工具
    用户存储各种用于分析的数据 存储的数据量比较庞大的
    结构复杂的
    大数据集的管理工具
    数据库 和数据仓库的区别:
    数据库中一般存储某一个分析结果 结果
    数据仓库: 面向主题的 过程
    数据分析过程 各个层级的数据
    原始 日志
    flow.log
    抽层 :
    etl
    原始数据加工
    细化 将需要分析的字段 抽出来 存储在一个个表中
    分析基于仓库中的数据
    使用场景上:
    OLTP On line Transaction Processing 联机事务处理
    增 删 改
    OLAP On line analysis Processing 联机分析处理
    查询
    数据库 更加倾向于 OLTP
    数据仓库:
    更加倾向于 olap 查询

    hive 不支持 数据delete update 支持insert 但是insert的效率极低
    模式上:
    数据库 mysql --写模式
    数据写入的时候 校验

    hbase nosql 无严格模式
    数据仓库 hive—读模式
    数据读取的时候 校验的

    事务支持:
    数据仓库 不擅长事务的 hive不支持事务
    数据库 mysql 支持事务的

  3. 可以将结构化数据映射为一张数据库表
    结果化的一条数据---------》表中的一行数据
    结果化的一个字段----------》表中的一个列

  4. 提供hql(hiven sql)查询功能
    对客户端提供hql查询功能

  5. 地层数据存储在HDFS上

  6. hive本质是将sql语句转换为MapReducer任务运行
    hql--------------》mapreducer

  7. 使不熟悉Mapreducer的用户很方便的利用hql处理和计算hdfs上的结构话数据节省开发成本

  8. 适用于离线的批量数据计算

hive架构

1、用户接口层,客户端使用
CLI命令行
hive>hive的命令操作以界面
jdbc/odbc
java程序操作hive jdbc
web ui一般不用界面太丑,操作繁琐
2、thrift server 跨语言服务层
hive hql
java |c| python
进其他语言转化为hive能识别的语言
3、元数据存储层 meta store
元数据:描述数据(hive表数据)的数据 描述hive真实存储数据的数据
hive中表的相关信息(除了表数据以外的信息)
表和hdfs数据的路径对应关系
表中的字段类型
表中字段的顺序
表的创建时间。。。
这些信息就叫做hive的元数据信息
hive的元数据信息 存储的时候 采用格式化存储
存储在关系型数据库
默认的元数据存储数据库 derby
derby存储的时候有缺陷的 一般生产上换成mysql
hive表数据存储在hdfs上
hive 表数据存储hdfs 元数据 存储关系型数据库的
4、核心驱动层Driver
将hql转换成mapreducer执行的
1、解释器 解释器的作用是将 HiveSQL 语句转换为抽象语法树(AST)
解释hql语句中的核心的关键词
select group by order by limit
2、编译器:编译器将语法树编译为逻辑执行计划 一个hql语句会转化为多个mapreducer任务多个job
3、 优化器:优化器是对逻辑执行计划进行优化
4、执行器:执行器是调用底层的运行框架执行 优化器优化完成的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值