大数据-数据仓库Hive

数据仓库Hive

一、Hive简介

数据仓库:面向主题、集成的、相对稳定的、反应历史变化的数据集合,用于支持管理决策。
在这里插入图片描述
传统数据仓库面临挑战:无法满足海量数据存储需求;无法有效处理不同类型数据;计算可处理能力不足。
Hive满足上述挑战,且Hive架构在底层的Hadoop核心组件基础之上。借助HDFS和MapReduce两个Hadoop核心组件。借助SQL语言的新的查询语言HiveQL。
Hive两大特性:批处理海量数据(数据仓库存储为静态,数据本身不会频繁变化。);Hive提供了一系列的ETL的工具。
在这里插入图片描述
其中Pig完成ETL过程。处理过程交给Hive。HBase作为实时交互式查询工具,弥补hdfs缺陷。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Hive对外访问接口
CLI:命令行工具。
HWI:Hive的web接口。
JDBC和ODBC:开放数据库接口。
Thrift Server:实现对Hive的RPC调用。
Driver:包含编译器、优化器、执行器,将HiveQL语句转化为MapReduce作业。
元数据存储模块:元数据存储模块,一般元数据存储在关系型数据库或者mysql。
HiveHA:高可靠Hive,因为Hive不够稳定。设置多个Hive实例,使用HiveProxy与外界交互。黑名单Hive实例会被重启。

二、SQL转化为MapReduce作业

Hive本身不做数据处理和存储,Hive将SQL转化为MapReduce作业。

1.SQL转换为MapReduce作业基本原理

数据库连接操作的MapReduce实现:在这里插入图片描述
其中value中的1,2分别为User表,Order表的标记位。
在这里插入图片描述

2.Hive中将SQL转化为MapReduce作业的过程

在这里插入图片描述

三、Impala

1.Impala简介

  • Impala允许通过sql语句交互式实时查询PB级底层数据,
  • 可以存储在hdfs或HBase中,
  • Impala运行依赖于Hive的元数据,设计参考Dremel系统,
  • 直接通过分布式查询引擎交互查询,
  • Impala和Hive都是采用相同SQL语法的ODBC驱动和用户接口。
    在这里插入图片描述

2.Impala系统架构

其中虚线框出为Impala的组件
在这里插入图片描述
impala包含三个组件

  • impalad负责具体相关查询任务,包含查询计划器、查询协调器、查询执行器三个模块。与hdfs数据节点运行在同一节点上,就近处理数据。给其他impalad分配和收集其他impalad的执行的结果进行汇总。
  • state store负责元数据管理和状态信息维护,创建一个state store进程,负责收集分布在集群中各个impalad进程的资源信息用于查询调度。
  • CLI用户访问接口。给用户提供查询使用的命令行工具。同时提供Hue、JDBC及ODBC使用接口。

Impala特性

  • 1.impala元数据直接存储在Hive中;
  • 2.采用与Hive相同的元数据、相同的SQL语法、相同的ODBC驱动程序和接口;
  • 3.在一个hadoop平台上统一部署Hive和Impala等分析工具,实现在同一平台上可同时满足批处理和实时查询。

3.Impala查询执行过程

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

4.Impala和Hive的比较

Impala和Hive的不同点:
在这里插入图片描述
在这里插入图片描述
Impala和Hive的相同点:
在这里插入图片描述

  • impala的目的不在于替换MapReduce工具;
  • impala和hive配合使用效果最佳;
  • 可以先使用hive进行数据转化处理,之后再使用impala在hive处理后的数据集上进行快速分析。

四、Hive的编程实践

Hive的安装配置过程省略。
Hive的数据类型省略
1.create创建数据库、表、视图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.show查看数据库、表、视图
在这里插入图片描述
在这里插入图片描述
3.load向表中装载数据
在这里插入图片描述
在这里插入图片描述
4.向表中插入数据或者导出数据
在这里插入图片描述

五、Hive应用实例WordCount

1.创建待分析文件
在这里插入图片描述
2.HiveQL词频统计语句
在这里插入图片描述
其中explode为将行转化为列。Hive实现词频统计的语句比MapReduce要少很多,其中MapReduce的词频统计Java代码需要63行,Hive只需要7行即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值