![a785a851878d64fbec77e44613a2d310.gif](https://i-blog.csdnimg.cn/blog_migrate/716d7cce23a6e60df8972776cad192fb.gif)
作者丨HappyMint
文章选摘:大数据与人工智能
这是作者的第7篇文章
本文主要针对从事大数据分析和架构相关工作,需要与hive打交道但目前对hive还没有进行深层次了解的小伙伴,希望本文会让你对hive有一个快速的了解。
内容主要包括什么是hive、为什么要有hive、hive的架构、hive的数据组织以及hive的使用之DDL操作。
1.什么是 hive?
1 是基于 Hadoop 的一个数据仓库工具;
2 可以将结构化的数据映射为一张数据库表;
3 并提供 HQL(Hive SQL)查询功能;
4 底层数据是存储在 HDFS 上;
5 Hive的本质是将 SQL 语句转换为 MapReduce、Tez 或者 spark 等任务执行;
6 适用于离线的批量数据计算。
2. 为什么要有 hive?
如上文第5点已经提到的,hive可以封装MapReduce、Tez、Spark等这些引擎的处理过程,让使用者在不了解这些计算引擎具体执行细节的情况下就可以处理数据,使用者只需要学会如何写sql即可。
hive可很好的解决直接使用 MapReduce、Tez、Spark等时所面临的两个主要问题:
① 直接使用 MapReduce、Tez、Spark学习成本太高,因为需要了解底层具体执行引擎的处理逻辑,而且需要一定的编码基础;而Hive提供直接使用类sql语言即可进行数据查询和处理的平台或接口,只要使用者熟悉sql语言即可;
② MapReduce、Tez、Spark实现复杂查询逻辑开发难度大,因为需要自己写代码实现整个处理逻辑以及完成对数据处理过程的优化,