1.什么是Hive?
Apache Hive 数据仓库软件便于读,写,和管理大型数据集驻留在分布式存储(Hadoop)使用SQL。
结构可以投影到存储中的数据上。
客户端的连接方式可采用:command line 和 JDBC Driver
注意:Hive实质就是客户端,不存在主从结构,搭建过程没有集群概念;
2.数据仓库和数据库
关系型数据库:OLTP联机事务处理:ACID,实时处理。
数据仓库:OLAP联机分析处理:统计、处理和加工(分析操作),离线处理,大数据集;
3.Hive的几个概念
- hive是数据仓库,在Hadoop基础上处理结构化数据;它驻留在hadoop之上,用户对数据的统计、查询和简单的分析操作;
- 表模型存储在database(关系型)中,处理的数据存储在HDFS上;
- 元数据 :hive选择独立的的数据库(MySQL)用于存储metadata,元数据包含:表的信息、databases信息、表的列信息、字段类型 信 息和HDFS mapping(映射);
- hive不是:
a.关系型数据库;
b.OLTP
c.实时查询和行级更新操作 - 存储格式多种,可支持Text,SequenceFile,ParquetFile,RCFILE等;
- 只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据;
- Hive 中包含以下数据模型:DB--数据库、Table--表,External Table--外部表,Partition--分区,Bucket分桶;
- .db:是创建数据库的后缀,是HDFS在${hive.metastore.warehouse.dir}路径下的一个子目录;
- tables:是hdfs下的.db目录下的一个文件夹;
- external table:与table类似,不过其数据存放位置可以在任意指定路径
- 管理表:删除表后,都删除元数据和数据;
- 外部表:删除表后,只删除元年数据,不删除HDFS下的数据;
- partition--分区:在hdfs中表现为table目录下的子目录;
- bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件
-
hive分桶操作的效果:
把一个文件按照某个特定的字段和桶数 散列成多个文件
4.Hive和MapReduce
- Hive利用HDFS存储数据,利用MapReduce查询数据
5.总结:Hive的定义
- 基于 Hadoop 的一个数据仓库工具:
- hive本身不提供数据存储功能,使用HDFS做数据存储,
- hive也不分布式计算框架,hive的核心工作就是把sql语句翻译成MR程序
- hive也不提供资源调度系统,也是默认由Hadoop当中YARN集群来调度
- 可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能
注意区分与HBase的概念!!

本文介绍了 Apache Hive 的基本概念,包括其作为数据仓库的特点、如何处理大型数据集、与传统数据库的区别,以及 Hive 的核心组件如表、分区、分桶等。同时探讨了 Hive 如何与 Hadoop 生态系统中的 MapReduce 结合使用。
1万+

被折叠的 条评论
为什么被折叠?



