Hive快速入门系列(1) | Hive的基本概念(超详细,入门推荐!)

2020-10-28 16:29:08 浏览数 (1)

  经过前面的学习之后,我们总算是来到了Hive阶段。本篇博客博主将为大家带来Hadoop组件之——Hive的介绍!

  首先在开始之前,再让我们通过一张熟悉的图片来回顾一下Hadoop生态系统的组成部分。

基本概念

1.1 什么是Hive

  Hive:由Facebook开源用于解决海量结构化日志的数据统计。   Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供 类SQL查询功能。 本质是:将HQL转化成MapReduce程序

2. 缺点

1.Hive的HQL表达能力有限

  • 迭代式算法无法表达
  • 数据挖掘方面不擅长,由于MapReduce数据处理流程的限制,效率更高的算法却无法实现。

2.Hive的效率比较低

  • Hive自动生成的MapReduce作业,通常情况下不够智能化
  • Hive调优比较困难,粒度较粗

1.4 Hive架构

1.5 执行过程

  Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。

1.6 Hive与Hadoop的关系

  Hive利用HDFS存储数据,利用MapReduce查询分析数据

1.7 Hive和数据库比较

  由于 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。

1.8 Hive的数据存储

1、Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,ORC格式RCFILE等)

2、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。

3、Hive 中包含以下数据模型:DB、Table,External Table,Partition,Bucket。

  • db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹
  • table:在hdfs中表现所属db目录下一个文件夹
  • external table:与table类似,不过其数据存放位置可以在任意指定路径
  • partition:在hdfs中表现为table目录下的子目录
  • bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件

本次的分享就到这里了

0 人点赞