之前更完了《Kafka从入门到放弃》系列文章,本人决定开新坑——hive从入门到放弃,今天先认识一下hive。
没看过 Kafka 系列的朋友可以点此传送阅读:
hive是一个开源的用于大数据分析和统计的数据库工具,它的存储基于HDFS,计算基于MapReduce或Spark,可以将结构化数据映射成表,并提供类SQL查询功能。
不熟悉 HDFS 的朋友可以点击传送:《大数据 | 分布式文件系统 HDFS》
当创建表的时候,需要指定HDFS文件路径,表和其文件路径会保存到MetaStore,从而建立表和数据的映射关系。当数据加载如表时,根据映射获取到对应的HDFS路径,将数据导入。
用户输入SQL后,hive会将其翻译成MapReduce或者Spark任务,提交到Yarn上面执行,执行成功将返回结果。
*hive默认将元数据存储在derby数据库中,但其仅支持单线程操作,若有一个用户在操作,其他用户则无法使用,造成效率不高;
而且当在切换目录后,重新进入Hive会找不到原来已经创建的数据库和表,
因此一般用MySQL存储元数据。
可能有些朋友会认为,hive是数据库,因为它提供了类SQL查询功能。但其实除了这一点和数据库相似以外,其它的根本就没有多少共性。
*hive在0.14以后的版本支持事务,前提是文件格式为 orc 格式,同时必须分桶,还必须显式声明 transactional=true
数字类
类型
长度
TINYINT
1-byte
SMALLINT
2-byte
INT/INTEGER
4-byte
BIGINT
8-byte
FLOAT
4-byte
DOUBLE
8-byte
DECIMAL
-
日期类
类型
版本
TIMESTAMP
0.8.0以后
DATE
0.12.0以后
INTERVAL
1.2.0以后
字符类
类型
版本
STRING
-
VARCHAR
0.12.0以后
CHAR
0.13.0以后
Misc类
类型
版本
BOOLEAN
-
BINARY
0.8.0以后
复合类
类型
版本
备注
ARRAYS
0.14.以后
ARRAY
MAPS
0.14.以后
MAP
STRUCTS
-
STRUCT
UNION
0.7.0以后
UNIONTYPE
本文从hive的特点、架构及运行机制开始,并将hive与数据库做对比,简单介绍了hive,同时对hive的数据类型做一个简单的介绍。
如果觉得写得还不错,麻烦点个小小的赞支持一下作者,可以持续关注【大数据的奇妙冒险】,解锁更多知识。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章