大数据基础-Hive简介

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: Hive简介

简介

Apache Hive 并非数据库,也并非数据仓库,而是构建在Hadoop上的数据仓库基础工具。

  • Hive提供了一系列函数操作,用于数据ETL操作。
  • Hive定义了类SQL方言,允许用户以SQL方式来对HDFS中数据进行访问与计算
  • Hive包含复杂的解析引擎,会将SQL解析成为MapReduce Job在集群中运行

数据存储

  • Hive的应用基于HDFS
  • Hive并没有专门的数据存储格式
  • Hve可以默认加载文本文件
  • 在针对普通文本的结构化数据进行创建表时,我们只需要指定列分隔符和行分隔符,Hive即可对结构化数据进行表映射

基础架构

网络异常,图片无法展示
|

自顶向下解析

  • CLI:Shell命令行
  • JDBC/ODBC:Hive 的Java操作方式,与使用传统数据库JDBC的方式类似
  • 元数据存储(Metastore):
  • 这里首先明确元数据的概念,元数据即数据的数据描述信息,更多的是指表的相关信息,包括表结构,表字段等。
  • Driver:驱动中包含编译器、优化器、执行器
  • 编译器:对用户书写的SQL语句进行语义分析,词法分析
  • 优化器:对用户书写SQL所产生的MapReduce Job任务进行优化
  • 执行器:执行最终的MapReduce任务
  • Hadoop:Hive的一切使用都是基于Hadoop

在这有一点需要注意的,就是从Hive2开始,其实官方就不建议默认使用MapReduce引擎了,而是建议 使用Tez引擎或者是Spark引擎,不过目前一直到最新的3.x版本中mapreduce还是默认的执行引擎 其实大数据计算引擎是有几个发展阶段的

  • 第一代:MapReduce
  • 第二代:Tez,Tez的存在感比较低,它是源于MapReduce,主要和Hive结合在一 起使用,它的核心思想是将Map和Reduce两个操作进一步拆分,这些分解后的元操作可以灵活组合,产 生新的操作,这些操作经过一些控制程序组装后,可以形成一个大的作业,这样可以提高计算效率,我们 在实际工作中Hive使用的就是 Tez引擎,替换Hive的执行引擎也很简单,只需要把Tez安装好(Tez也是 支持在YARN上执行的),然后到Hive中配置一下就可以了,不管使用什么引擎,不会对我们使用hive造 成什么影响,也就说对上层的使用没有影响。
  • 第三代:Spark,Spark在当时属于一个划时代的产品,改变了之前基于磁盘的计 算思路,而是采用内存计算,就是说Spark把数据读取过来以后,中间的计算结果是不会进磁盘的,一直 到出来最终结果,才会写磁盘,这样就大大提高了计算效率,而MapReduce的中间结果是会写磁盘的, 所以效率没有Spark高。Spark的执行效率号称比MapReduce 快100倍,当然这需要在一定数据规模下才 会差这么多,如果我们就计算几十兆或者几百兆的文件,你去对比发现其实也不会差多少。
  • 第四代:Flink,Flink是一个可以支持纯实时数据计算的计算引擎,并且Flink也支持在Yarn上执行,只是目前Hive的计算引擎并未整合Flink相关的。

所以发现没有,MapReduce、Tez、Spark、Flink这些计算引擎都是支持在yarn上执行的,所以说 Hdoop2中对架构的拆分是非常明智的

整体架构图解析:

1.用户通过接口传递Hive SQL

2.Driver对SQL进行分析、编译,生成查询计划

3.查询计划会存储在 HDFS中,然后再通过MapReduce进行计算出结果

元数据

Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在 的hdfs目录等。

元数据存储一般默认derby数据库

Derby数据库的缺点:在同一个目录下一次只能打开一个会话

使用derby存储方式时,Hive会在当前目录生成一个derby.log文件和一个metastore_db目录, metastore_db里面会存储具体的元数据信息

我们在企业中主要使用MySQL作为外置存储引擎,可供多个用户进行元数据共享。


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
13天前
|
存储 缓存 分布式计算
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模型介绍
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模型介绍
28 4
|
14天前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
36 4
|
14天前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
33 3
|
13天前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
18 0
|
2月前
|
存储 分布式计算 数据可视化
大数据概念与术语简介
大数据概念与术语简介
72 2
|
3月前
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。
|
3月前
|
分布式计算 DataWorks 调度
MaxCompute产品使用合集之如何将数据迁移到CDH Hive
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
SQL 数据采集 数据可视化
基于Hive的招聘网站的大数据分析系统
基于Hive的招聘网站的大数据分析系统
124 2
|
4月前
|
SQL 关系型数据库 MySQL
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
139 0
|
4月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之启用hive兼容的时候,某个字段是null,是否会把这个字段当成空白连起来
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。