hive学习day01

1.hive的简介:
	hive不是分布式,只是hadoop的一个客户端工具,是大数据行业中数据仓库建设的工具之一。
	hive是基于hadoop的。hive是以表的形式存在,存储是放在hdfs上,计算用的是MapReduce,调度用的是yarn,查询语言用的是hive-sql.
	sql解析器:试用mysql的驱动。
	在查询的时候,将sql语言解析成mapreduce任务进行执行。
	hive适用的场景:离线批处理,一般用于BI报表开发,相关数据T+1的分析。
2.HIve与传统数据库比较
	(1)查询语言:
		类SQL的查询语言HQL。熟悉SQL开发的开发者可以很方便的使用hive进行开发。
	(2)数据存储位置:
		所有Hive的数据都是存储在HDFS中的。而数据库则可以将数据保存在块设备或者本地文件系统中。
	(3)数据格式:
		Hive中没有定义专门的数据格式。而在数据库中,所有数据都会按照一定的组织存储,因此,数据库加载数据的过程会比较耗时。
	(4)数据更新:
		Hive对数据的改写和添加比较弱化,hive2版本之后支持,需要启动配置项。而数据通常是需要经常进行修改的。
	(5)索引:
		Hive在加载数据的过程中不会对数据进行任何处理。因此访问延迟较高。数据库可以有很高的效率,较低的延迟。由于数据的访问延迟较高,决定了hive不适合在线数据查询。
	(6)执行计算:
		Hive中执行是通过mapreduce来实现的而数据库通常有自己的执行引擎。
	(7)数据规模:
		由于hive建立在集群上并可以利用mapreduce进行并行计算,因此可以支持很大规模的数据;对应的数据库可以支持的数据规模较小。
3.hive的存储格式(建表的时候要指定压缩格式,默认是textfile)
	hive的数据存储基于Hadoop HDFS。
	hive没有专门的数据文件格式,目前主流使用有三种。
		(1)TextFile(普通文本文档类型。占用磁盘空间较大,但是读取效率高)
			默认格式,数据不做压缩,磁盘开销大,数据解析开销大。
			可结合Gzip、Bzip使用(系统自动检查,执行时自动解压),但是用这种方式hive不会对数据进行切分。从而对无法对数据进行并行操作。
		(2)RCFile(一般压缩,用的最多。占用磁盘空间较大,读取效率性价比高)
			RCfile是一种行列存储相结合的存储方式。
			首先,其将数据按行分块,保证同一个record在一个块上,避免读一个记录需要读取多个block。其次,块数据列示存储,有利于数据压缩和快速的列存储
			升级:orcfile
		(3)SequenceFile
			SequenceFile是Hadoop API提供的一种二进制文件,其具有使用方便、可分割、可压缩的特点。	
4.hive将元数据存储在数据库中(metastore),目前只支持mysql、derby.
	(1)hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等解析器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行。
	(2)Hive的数据存储在HDFS中,大部分的查询由mapreduce完成(包含*的查询,比如select * from table 不会生成mapreduce任务)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值