因为最近在学大数据,今天刚刚学了hive的基本理解,所以想总结一下
附上hive的linux环境下的tar包
链接:https://pan.baidu.com/s/1M_-V_1LWu1CvLJWeCYK5ig
提取码:52jl
首先需要说数据库与数据仓库的区别
数据仓库:一般存储的是大规模的非关系型数据
数据库:一般存储的是关系型数据
- 而hive是在Hadoop之上开发的。 它是一个数据仓库框架,用于查询和分析存储在HDFS中的数据。 Hive是一个开源软件,可以让程序员在Hadoop上分析大型数据集。(也可使用hql语句去管理分布式系统中的大规模数据集)(hql语句与sql类似)
1、 hive的功能
- 作为数据仓库(存储大规模数据集)—>底层是基于hdfs实现的
- 查询引擎—>把hql语句交给hive查询引擎转换为mapreduce的job来进行执行
2、关于hive的元数据介绍
- hive在创建数据库以及表的同时会生成元数据metastore,包括了hive所创建的数据库以及表等在分布式文件系统中存放的位置,大小等基本信息;
- metastore默认使用内嵌的derby数据库作为存储引擎(单机版的数据库,一次只可以创建一个会话),而在实践中则多使用MYSQL作为外置存储引擎来村塾hive的元数据metastore;
3、hive创建表的过程
- 客户端向hive发送hql语句,hive接收到客户端的hive语句,将元数据存储在rdbms(关系型数据库)中,同时在hdfs分布式文件系统中根据表来创建对应的目录。
4、hive的模式
在hive中存在两种模式,local模式和集群模式,hive默认的使用的时集群模式
- local模式:速度快,适合于在开发阶段用来做小数据的测试,可以通过set hive.exec.mode.local.auto=true;(当前会话改变)来进行设置
- 集群模式:在集群模式中,每一个hql语句都会被转化为mapreduce对应的job在yarn进行执行,生产环境使用集群模式;
启动hive之前一定要先保证Hadoop高可用集群时开启的
以后继续学习的会补上,完了有时间也会写一下Hadoop高可用集群的搭建
新手程序员,感谢你的阅读,不足之处请多谅解