Hive数据仓库

一.概念

1.1 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策

1.2 体系结构
在这里插入图片描述

1.3 与传统数据库的区别

  • 数据相对稳定,不会频繁发生变化。
  • 保留历史信息;

1.4 基于传统数据库的传统数据仓库面临的挑战

  • 无法满足快速增长的海量数据存储需求;
  • 无法有效处理不同数据类型的数据;
  • 计算和处理数据能力不足;

二.Hive 简介

2.1 基于hadoop的Hive数据仓库,水平扩展性好。

  • 传统的数据仓库既是数据存储产品也是数据处理分析产品;
  • 传统数据仓库同时支持数据的存储于处理分析;
  • Hive 本身并不支持数据存储和处理,但提供了一种编程语言HiveQL;
  • 架构在底层hadoop核心组件基础之上,借助hadoop的HDFS和MapReduce完成数据的存储和处理;

2.2 Hive提供类似SQL的查询语言HiveQL,通过其来执行具体的MapReduce任务,支持类似的SQL的接口,移植容易,是一个有效合理直观组织和使用的数据分析工具。

2.3 Hive 两方面特性

  • 采用批处理方式处理海量数据。
    • Hive会把HiveQL语言转化为MapReduce任务进行运行;
    • 数据仓库存储的是静态数据,对静态数据分析适合采用批处理方式,不需要快速响应给出结果,而且数据本省不会频繁变化。
  • Hive提供了一系列对数据进行提取、转换、加载(ETL)的工具。
    • 可以存储、查询和分析存储在hadoop中的大规模数据。
    • 这些工具能够很好满足数据仓库各种应用场景。

2.4 Hive 与hadoop组件的关系

在这里插入图片描述

  • Hive 依赖于HDFS存储数据;
  • Hive 依赖于MapReduce处理数据;
  • Pig提供一种面向流式处理的语言Pig Latin(类似SQL),通过Pig Latin脚本语言来执行数据仓库和数据处理等工作。与Hive类似,通过转化为MapReduce任务来执行。
  • Pig适合处理实时的交互信息,不适合海量的数据处理。
  • Pig 主要用于数据仓库的ETL环节;
  • Hive 主要用于数据仓库海量数据的批处理分析。
  • HBase 实时交互式查询的数据库产品,弥补HDFS的缺陷。
  • Hive 时延高,与Hbase互补;

2.5 Hive与传统数据库
在这里插入图片描述

2.6 Hive的应用
在这里插入图片描述

  • Mahout:构建商务智能应用;

2.7 Hive 系统架构
在这里插入图片描述

  • Hive 对外访问接口

    • CLI:一种命令行工具
    • HWI:Hive web interface是Hive 的文本接口。
    • JDBC和ODBC:开发数据库连接接口
    • Thrift Server :基于Thrift架构开发的接口,允许外界通过这个接口,实现对Hive 仓库的RPC调用。
  • 驱动模块Driver

    • 包含编译器、优化器、执行器:负责把HiveQL语句转换成一些列MapReduce作业;
  • 元数据存储模块Metastore:是一个独立的关系型数据库;

    • 通过MySQL数据库来存储Hive元数据。

在这里插入图片描述

  • 也可以通过上述接口访问;
    • Qubole:直接作为一种服务提供给用户,通过亚马逊AWS平台可以远程使用数据仓库,数据仓库由亚马逊集群管理。

2.8 Hive HA基本原理

  • Hive High Availability:由于Hive 很多时候表现出不稳定性,高可用性的解决方案即Hive HA。
    在这里插入图片描述
  • 外部多个实例访问HA Proxy,Proxy在转发到底层的多个实例上去,执行逻辑可用性测试。
  • 每个一定的周期,HA Proxy会重新对列入黑名单的示例进行统一处理。

三.SQL转换成MapReduce作业原理

3.1 Hive 不做具体的数据处理和存储,它把SQL语句转换成MapReduce作业。

3.2 基本原理

  • 连接:MapReduce实现数据库表的连接

    • 编写MapReduce处理逻辑
    • Map处理逻辑输入关系数据库的表;
    • 通过Map对它进行转换,生产键值对;
      在这里插入图片描述
      在这里插入图片描述
  • 转化原理
    在这里插入图片描述
    在这里插入图片描述

    • 说明
      • 当启动MapReduce 程序时,Hive 本身是不会生成MapReduce程序的;
      • 需要通过一个表示"Job 执行计划"的xml文件驱动执行内置的、原生的Mapper和MapReduce模块。
      • Hive 通过和JobTracker通信来初始化MapReduce任务,不必直接部署在JobTracker所在的管理节点上执行
      • 通常在大型集群上,会有专门的网关机来部署Hive 工具。
      • 数据文件通常存储在HDFS 上,HDFS 由名称节点管理。

四.Impala 简介

4.1 Impala 是可以实现实时性交互式查询分析的工具,弥补了Hive 的缺点。

在这里插入图片描述

4.2 Impala

  • 允许通过SQL语句查询底层数据,支持PB级别以上的数据,数据可以存储在HDFS和HBase
  • Impala 运行后依赖Hive 元数据,不是独立运行的。
  • Impala 是参照Dremel 系统进行设计的;
  • Impala 不需要转换成MapReduce任务,而是采用与商业并行关系数据库类似的分布式查询引擎,直接与HFDS和HBase进行交互查询,实时性高;
    在这里插入图片描述
    在这里插入图片描述

4.3 系统架构
在这里插入图片描述

  • 虚线部分是Impala的组件,实现部分是Hadoop的其他组件,这些组件需要一起部署在同一个集群上。
  • HDFS 和HBase 存储数据;
  • Hive 提供元数据存储功能;
  • Impala 三个典型组件
    • Impalad: 负责具体的相关查询任务;
      • Impalad是驻留在不同节点上的进程;
      • 包含三个模块
        • Query Planner: 查询计划器
        • Query Coordinator :查询协调器
        • Query Exec Engine:查询执行引擎
      • 负责协调客户端提交的查询的执行;
      • 与HDFS 的数据节点(HDFS DN)运行在同一节点上。
      • 给其他Impalad分配任务以及收集其他Impalad的执行结果并汇总;
      • Impalad也会执行其他Impalad给其分配的任务对本地HDFS和HBase 里的部分数据进行操作。
    • State Store:负责运输局管理和状态信息维护;
      • 查询启动后,系统会创建StateStore的进程;
      • 负责收集分布式在集群中各个Impala 进程的资源信息用于查询调度。
    • CLI:用户访问接口;
      • 提供查询使用的命令行工具;
      • 同时提供Hue 、JDBC及 ODBC 的使用接口;

在这里插入图片描述

4.4 Impala 查询执行过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5 Impala 与Hive 比较分析
在这里插入图片描述

  • 不同点
    • Hive 适合于长时间的批处理查询分析而Impala 适合于实时交互式SQL 查询。
    • Impala 在遇到内存放不下数据时,不会利用外存所以Impala 目前处理查询时会受到一定的限制。
  • 相同点
    • Hive 与Impala 使用相同的存储数据池都支持数据存储与HDFS和HBase。
    • Hive 和Impala 中对SQL 的解释处理比较相似都是通过词法分析生成执行计划。

Impala 的目的不在于替代现有的MapReduce工具,使HIve 和 Impala 的配合使用效果最佳,可以先使用HIve 进行数据转换处理之后再使用Impala 在 Hive 处理后的数据集上进行快速的数据分析。

五.Hive 基本操作

5.1 基本数据类型
在这里插入图片描述
5.2 相关操作

  • 创建数据库
    在这里插入图片描述
  • 创建表,可以设置存储路径。
    在这里插入图片描述
  • 创建视图
    在这里插入图片描述
  • 查看数据库
    在这里插入图片描述
  • 查看表,视图
    在这里插入图片描述
  • 插入数据
    在这里插入图片描述
    在这里插入图片描述
  • 插入或导出数据
    在这里插入图片描述

六. Hive 编程

6.1 词频统计

在这里插入图片描述
在这里插入图片描述

6.2 与MapReduce 的不同点

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秘境之眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值