Hadoop入门——初步了解什么是Hive

Hive基础

背景:

我们在学习一门知识时需要先了解其背景。在过去的时间中传统的Hadoop构架在时代的检验中学者们也逐渐发现其中存在的一些问题。

  1. MapReduce编程的不便

Hadoop中的MapReduce计算模型虽然能将计算任务切分成多个小单元,发布到各个节点去运行,从而降低计算机成本并提高扩展性,但使用MapReduce进行数据处理必须掌握Java编程,门槛比较高。

  1. HDFS没有Schema,不能使用sql语句

Hadoop分布式文件系统(HDFS)中,数据存储在HDFS上是没有Schema(模式)概念的,<!--Schema相当于表里面的基本信息,如列、字段、字段名称、字段间的分隔符等。-->,也可称为Schema信息。在HDFS上的数据文件通常是纯文本文件。

因此,在上述两个大的背景下,能否让用户将数据文件从一个现有的数据框架转移到Hadoop上来?如果成功了,是否可以通过SQL的方式进行处理?针对这些挑战,Hive在Facebook诞生了。

Hive的概述

过往

Apache Hive(简称Hive)是一个由Apache软件基金会维护的开源项目,由Facebook贡献。前身是Apache Hadoop的一个子项目,现在已成为Apache顶级项目。

概念
  • Hive是一个基于Hadoop的数据仓库工具;

  • 可以将结构化的数据文件映射为一张数据库表;(相当于Schema)

  • 提供SQL查询功能;

  • 可以将SQL语句转换为MapReduce作业进行运行。

数据仓库与数据库的区别:

在上述概念中提到了数据仓库一词,很多初学者会将其与数据库混为一谈,其实两者间还是有较大的区别,其中最主要的区别是:

【数据仓库】适合联机分析处理(OLAP),通常是对历史数据进行分析。

【数据库】适合联机事务处理(OLTP),通常是在数据库联机时对业务数据进行添加、删除、修改、查询等操作。

Hive被设计成数据仓库,其各版本在缺省情况下并不支持事务,并不适合OLTP。

Hive在Hadoop生态系统中的位置

因为Hive的概念都是基于Hadoop而运作的,所以Hive必须依赖Hadoop而存在,寄生于HDFS,它在Hadoop生态系统中的位置如下图所示。

从上图可以可以得出以下结论:

  1. 运行Hive的必要环境是Hadoop的核心:HDFS、MapReduce、YARN。

  2. Hive执行的本质仍是MapReduce。

  3. Hive运行时并没有直接编写MapReduce执行效率高。

Hive与传统关系型数据库

因为Hive的运行语言中类SQL的语言HQL(Hive的SQL方言的简称),使其与传统关系型数据库(RDBMS)有很多相同的地方,其中最主要的是两大功能:查询和分析,又因为Hive的整体框架区别与数据库也导致了两者间差异也较为明显,下表为Hive与RDBMS的对比表。

对比项HiveRDBMS
查询语言HQLSQL
数据存储HDFS块设备、本地文件系统
执行MapReduce(需转换)Executor
执行延迟高(分布到各节点)低(时实)
处理数据规模
事务0.14版本后加入支持
索引(查找)0.8版本后加入索引复杂

除了上述区别外,通常RDBMS可以用于在线应用中,而Hive主要进行离线的大数据分析。

Hive的特点与优势

特定优势
HQL与SQL有着相似的语法,大大提高了开发效率可扩展:可以自由扩展集群规模
支持运行在不同的计算框架上可延展:支持用户自定义函数
支持HDFS与Hbase上的ad-hoc可容错:星型节点
支持用户自定义函数、脚本等避免了编写复杂的MapReduce任务
支持Java数据库连接与开放数据库连接驱动,建立自身与ETI、BI根据的通道减少了开发人员的学习成本

Hive架构简要介绍

Hive架构包含三部分:

(1)Hive客户端:必须通过服务端与Hive交互。

(2)Hive服务端:包括CLI、Hive Server、Hive Web Interface、Drive、Metastore等组件。

(3)Hive存储与计算:

  • Hive的元数据使用RDBMS存储;

  • Hive的数据存储在HDFS中;

  • 大部分查询由MapReduce完成。

Hive工作流程

Hive适用场景

  • 非结构化数据的离线分析统计场景(如:用户画像、舆情监测、社交网络分析,主题提取、情感分析、关键词提取、疾病预测、药物研发、医疗知识图谱构建等)

  • 对实时性要求不高的场景(历史数据)

  • 适用于大数据处理的场景(企业数据)

最后,本篇章是基于我所学所知进行的知识总结,如有误论,虚心接受指正。参考文献是《Hadoop数据仓库实战》,感兴趣的小伙伴可以对其进行深入阅读。我最近对一句话感触颇深”知识如果不与时代同步,只会变成障碍“,这句话虽然不完全适用于所有行业,但是在现今社会,科技时代,科技占生活的大头,其中计算机行业的发展更是日新月异,吐故纳新应是我们所具备的。(2024/03/07)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值