栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive学习-----基础介绍

hive学习-----基础介绍

这里正式进入hive的学习,学习hive我们要知道几个问题。
1.什么是hive?
2.hive能干什么?
3.为什么要学习hive?
4.hive怎么学
开门见山,说一下hive是什么
Hive是建立在Hadoop HDFS上的数据仓库基础架构。。
hive 是基于Hadoop的一一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sq|查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库°的统计分析。
这里出现频率最多的一个词就是数据仓库
这里简单介绍过后我们来看看正文。

hive

既然出现这么多次数据仓库那么我们就来介绍一下数据仓库

数据仓库 定义 1. 最讨厌的官方定义:
数据仓库(Data Warehouse)是一个面向主题的(Subject 
Oriented)、集成的(Integrated)、相对稳定的(Non-
Volatile)、反映历史变化的(Time variant)数据集合,
用于支持管理决策。
这里我就这样理解:
就是一个存数据的仓库
从逻辑上理解,数据库和数仓没有区别,都是通过数据库软件实现
存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞
大。
2. 图解:


这里我看到了一个更好的举例:[点击即可]

hive 定义
hive是建立在Hadoop上的数据仓库基础框架。它提供了一系列的工
具,可以用来进行数据提取和转化加载(ETL),这是一种可以存储、查
询和分析存储在Hadoop中的大规模数据的机制。hive定义了简单的类
SQL查询语句,称为HQL,它允许熟悉SQL的用户查询数据。同时这个语
言也允许熟悉MapReduce开发者的开发自定义的mapper和reduce来处
理内建的mapper和reduce无法完成的复杂的分析工作
什么是hive
  1. hive是SQL的解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行。
  2. Hive的表其实就是HDFS的目录,按表名把文件分开。如果是区分表,则分区值是自文件夹,可以直接在M/R Job里使用这些数据
  3. Hive相当于Hadoop的客户端工具,不熟的时候不一定放在集群管理节点中,可以放在某个节点上
    等等:Hive的表是HDFS的目录?那么是不是可以直接使用hdfs的shell命令呢?还有有没有理解为什么安装hive要开启Hadoop?
hive的安装

这里的安装就不赘述了看一下我的这个文章
hive的安装

Hive与传统的数据库进行比较 1.图片解析

这里直接以图片的形式来告诉两者的区别:

2.文字解析
  1. 查询语言。类SQL的查询语言HQL。熟悉SQL开发的开发者可以很方便的使用Hive进行开发。
  2. 数据存储位置。所有Hive的数据都是存储在HDFS中的。而数据库则可以将数据保存在块设备或者本地文件系统中。
  3. 数据格式。Hive中没有定义专门的数据格式。而在数据库中,所有数据都会按照一定的组织存储 ,因此,数据库加载数据的过程会比较耗时。
  4. 数据更新。Hive对数据的改写和添加比较弱化,0.14版本之后支持,需要启动配置项。而数据库中的数据通常是需要经常进行修改的。
  5. 索引。Hive在加载数据的过程中不会对数据进行任何处理。因此访问延迟较高。数据库可以有很高的效率,较低的延迟。由于数据的访问延迟较高,决定了Hive 不适合在线数据查询。
  6. 执行计算。Hive 中执行是通过MapReduce 实现的而数据库通常有自己的执行引擎。
  7. 数据规模。由于Hive建立在集群.上并可以利MapReduce进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模较小。
Hive的存储格式
  1. Hive的数据存储基于Hadoop HDFS
  2. Hive没有专门的数据文件格式,常见的有以下的几种
TEXTFILE
SEQUENCEFILE
AVRO
RCFILE
ORCFILE
PARQUET
TextFile:
TEXTFILE即正常的文本格式,是Hive默认文 件存储格式,因为大多数情况下
源数据文件都是以text文件格式保存(便于查看验数和防止乱码)。此种格式的表
文件在HDFS.上是明文,可用hadoop fs -cat命令查看,从HDFS. 上get下
来后也可以直接读取。
TEXTFILE存储文件默认每- -行就是一-条记录, 可以指定任意的分隔符进行字
段间的分割。但这个格式无压缩,需要的存储空间很大。虽然可结合Gzip、Bzip2、
Snappy等使用,使用这种方式,Hive不会对数据进行切分,从而无法对数据进行并
行操作。
一-般只有与其他系统由数据交互的接口表采用TEXTFILE格式,其他事实表和维度
表都不建议使用。
RCFile;
Record Columnar的缩写。是Hadoop中第一个列文件格式。能够很好的压缩和快
速的查询性能。通常写操作比较慢,比非列形式的文件格式需要更多的内存空间
和计算量。RCFile是 - -种行 列存储相结合的存储方式。 首先,其将数据按行分块,
保证同一-个record在一个块上,避免读-一个记录需要读取多个block。其次,块数
据列式存储,有利于数据压缩和快速的列存取。
ORCFile:
Hive从0.11版本开始提供了ORC的文件格式,ORC文件不仅仅是一-种列式文件存
储格式,最重要的是有着很高的压缩比,并且对于MapReduce来说是可切分
(Split)的。因此,在Hive中使用ORC作为表的文件存储格式,不仅可以很大程
度的节省HDFS存储资源,而且对数据的查询和处理性能有着非常大的提升,因为
ORC较其他文件格式压缩比高,查询任务的输入数据量减少,使用的Task也就减
少了。ORC能很大程度的节省存储和计算资源,但它在读写时候需要消耗额外的
CPU资源来压缩和解压缩,当然这部分的CPU消耗是非常少的。
Parquet:
通常我们使用关系数据库存储结构化数据,而关系数据库中使用数据模型都是
扁平式的,遇到诸如List、 Map和自定义Struct的时候就需要用户在应用层解析。但
是在大数据环境下,通常数据的来源是服务端的埋点数据,很可能需要把程序中的
某些对象内容作为输出的一部分,而每个对象 都可能是嵌套的,所以如果能够原
生的支持这种数据,这样在查询的时候就不需要额外的解析便能获得想要的结果。
Parquet的灵感来自于2010年Google发表的Dremel论文,文中介绍了一-种支持
嵌套结构的存储格式,并且使用了列式存储的方式提升查询性能。Parquet仅仅是一
种存储格式,它是语言、平台无关的,并且不需要和任何一-种数据处理框架绑定。
这也是parquet相较于orc的仅有优势:支持嵌套结构。Parquet 没有太多其他可圈
可点的地方,比如他不支持update操作(数据写成后不可修改),不支持ACID等.
SEQUENCEFILE: 
SequenceFile是Hadoop API提供的一种二进制文件, 它将数据以
的形式序列化到文件中。这种二进制文件内部使用Hadoop的标准的Writable接口
实现序列化和反序列化。它与Hadoop API中的MapFile是互相兼容的。Hive 中的
SequenceFile继承自Hadoop API的SequenceFile,不过它的key为空,使用value
存放实际的值,这样是为 了避免MR在运行map阶段的排序过程。
SequenceFile支持三种压缩选择: NONE, RECORD, BLOCK。Record压缩
率低,般建议使用BLOCK压缩。 SequenceFile最 重要的优点就是Hadoop原生支
持较好,有API,但除此之外平平无奇,实际生产中不会使用。
AVRO:
Avro是一种用于支持数据密集型的二进制文件格式。它的文件格式更为紧凑,
若要读取大量数据时,Avro能 够提供更好的序列化和反序列化性能。并且Avro数据
文件天生是带Schema定义的,所以它不需要开发者在API级别实现自己的Writable
对象。Avro提供的机制使动态语言可以方便地处理Avro数据。最近多个Hadoop子
项目都支持Avro数据格式,如Pig 、Hive、Flume、 Sqoop和Hcatalog.
Hive的四大常用存储格式存储效率以及速度对比



Hive操作客户端
常用的2个: CLI, JDBC/ODBC
➢CLI, 即Shell命令行
➢JDBC/ODBC是Hive的Java,与使用传统数据库JDBC的方式类似。
➢Hive 将元数据存储在数据库中(metastore),目前只支持mysql、derby。
➢Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性( 是否为外部表等) ,
表的数据所在目录等;由解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、
编译、优化以及查询计划( plan)的生成。生成的查询计划存储在HDFS中,并在随后由
MapReduce调用执行。
➢Hive的数据存储在HDFS中,大部分的查询由MapReduce完成(包含*的查询,比如
select * from table不会生成MapRedcue任务)

hive的介绍就说到这里了,后面继续更新hive的使用教程,敬请期待哦

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676811.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号