大数据-数据仓库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行即可。

### 关于大数据平台运维中的 Hive 测评 Hive 是一种基于 Hadoop数据仓库工具,用于大规模数据分析和处理。它提供了类似于 SQL 的查询语言(称为 HiveQL),使得用户可以方便地执行复杂的数据分析操作[^1]。 #### 创建数据仓库 在头歌实验平台上学习 Hive 数据库的创建过程时,通常会涉及以下几个方面: - **数据库管理**:通过 `CREATE DATABASE` 命令来定义新的数据库环境。 - **表结构设计**:利用 `CREATE TABLE` 定义存储数据的具体表格形式以及字段类型。 ```sql CREATE DATABASE IF NOT EXISTS my_database; USE my_database; CREATE EXTERNAL TABLE IF NOT EXISTS example_table ( id INT, name STRING, age INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/path/to/data'; ``` 以上代码片段展示了如何在一个指定路径下建立外部表并设置分隔符为制表符 `\t`。 #### 查询与统计功能 对于实际应用而言,掌握基本到高级的各种查询语句至关重要。这包括但不限于简单的 SELECT 语句、JOIN 操作、聚合函数的应用等: ```sql -- 统计每种类型的记录数 SELECT type, COUNT(*) as count FROM logs GROUP BY type; -- 使用 JOIN 进行跨表关联查询 SELECT a.id, b.name FROM table_a a JOIN table_b b ON (a.key = b.foreign_key); ``` 这些例子说明了怎样有效地从不同维度提取所需的信息,并支持更复杂的业务逻辑需求[^1]。 #### 实践案例分享 考虑到具体场景下的练习价值,在完成理论知识的学习之后,可以通过模拟真实世界的项目来进行巩固提升。比如尝试解决电商网站日志解析问题或者社交媒体情感分析任务等等。这类实践活动往往能够帮助学员更好地理解所学概念的实际用途及其局限性所在。 关于您提到的大数据平台运维 Hive 测评部分,则建议关注如下几个要点: - 掌握命令行界面的操作方法; - 能够独立编写脚本来实现自动化流程控制; - 对常见错误具备快速定位原因的能力; 最后提醒一点,由于技术不断进步更新迭代较快,请务必定期查阅最新文档资料以保持技能与时俱进[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值