前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

在这里插入图片描述

Hive 的产生背景

Hadoop 生态系统就是为了处理大数据而产生的解決方案。

在 Hadoop 中的 MapReduce 计算模型能将计算作业任务切分成多个小单元,然后分布到各个节点上去执行,从而降低计算成本并提供高扩展性。

但是要使用 MapReduce 进行数据处理分析的门槛是比较高的,要先学会 Java 面向 MapReduce API 进行编程,这对于从事 DBA 或者运维的人来说门槛高、不易学。

那么能否让用户从一个现有的数据基础架构转移到 Hadoop 上来呢,比如说这个数据架构就是基于传统关系型数据库和 SQL 查询的。

对于大量的 SQL 用户来说,这个问题将如何解决?

基于这个挑战,在 Facebook 就诞生了 Hive。

什么是 Hive?

Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行。

Hive 是建立在 Hadoop 上的数据仓库基础构架,它提供了一系列的工具,可以用来进行数据提取转化加载( ETL ),这是一种可以存储、査询和分析存储在 Hadoop 中的大规模数据的机制。

为什么要使用 Hive ?

当我们使用 Hadoop 的 MapReduce 进行数据处理时面临着人员学习成本太高、项目周期要求太短、 MapReduce 实现复杂逻辑开发难度太大等问题。

这就是我们为什么要使用 Hive 的原因所在了。

当我们使用 Hve 时,操作接口采用类 SQL 语法,提供快速开发的能力。

避免了去写 MapReduce ,减少开发人员的学习成本,而且扩展功能很方便。

Hive 有什么特点?

  1. 可扩展: Hive 可以自由扩展集群的规模,一般情况下不需要重启服务。
  2. 延展性: Hive 支持用户自定义函数,用户可以根据自己的需求来实现自定义的函数。
  3. 容错性: 良好的容错性,即使节点出现问题 SQL 仍可完成执行。

Hive 有什么优缺点?

  • 优点

    • 操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
    • 避免了去写MapReduce,减少开发人员的学习成本。
    • Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
  • 缺点

    • Hive 不支持记录级别的增删改操作
    • Hive 的查询延时很严重
    • Hive 不支持事务
上一篇 下一篇