Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别
Hive架构
1)用户接口:
CLI(hive shell):命令行工具;启动方式:hive 或者 hive --service cli
ThriftServer:通过Thrift对外提供服务,默认端口是10000;启动方式:hive --service hiveserver
WEBUI(浏览器访问hive):通过浏览器访问hive,默认端口是9999;启动方式:hive --service hwi
2)元数据存储(Metastore):启动方式:hive -service metastore
默认存储在自带的数据库derby中,线上使用时一般采用MySQL;
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、列/分区 属性、表的类型(是否是外部表)、表的数据所在目录等;
database是表(table)的名字空间。默认的数据库是default;
table的原数据信息有:列和它们的类型、拥有者(owner),存储空间和SerDe信息;
partition每个分区都有自己的列,存储空间和SerDe信息等
3)驱动器(Driver):
编译器、优化器、执行器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成;
生成的查询计划存储在HDFS中,并在随后的MapReduce调用执行;
4)Hadoop
用MapReduce计算,用HDFS存储;
Hive的数据存储在HDFS之上,包括Database、Table、Partition等;
Hive的默认数据仓库是/user/hive/warehouse,可以在hive-site.xml中由hive.metastore.warehouse.dir进行配置;
除了外部表外,每个表在数据仓库下都有一个相应的存储目录;
当数据被加载到表中时,不会对数据进行任何转换,只是将数据移动到数据仓库中去;
非外部表被删除时,表数据和元数据都被删除;外部表被删除时,只删除元数据不删除表数据;
分区表的一个Partition对应该表下的一个子目录;
每个Bucket对应一个文件
大部分的查询由MapReduce计算完成;两种情况不跑MapReduce:select * from xxx和select * from xxx where 分区字段不跑mapreduce
5)hiveserver2
启动方式:hive --service hiveserver2
HiveServer2是HiveServer的升级版,提供了新的Thrift API处理JDBC/ODBC、Kerberos身份验证、多客户端并发等;
HiveServer2提供了新的CLI:BeeLine,是hive0.11后引入的,基于SQLLine,可以作为Hive jdbc client端访问HiveServer2,启动一个Beeline对应一个session;
Hive单机环境部署图
Hive集群环境部署图
注:在生产环境中元数据需要采用主备服务器的方式防止宕机;
Hive运行模式
Hive运行模式即任务的执行环境,分为:本地和集群两种
可以通过mapred.job.tracker来指定,指定方式:
hive> SET mapred.job.tracker=local
不设置默认为集群方式。
Hive与关系型数据库的区别
Hive和关系型数据库并没有什么关系,只是语法类似而已。
Hive |
SQL |
|
数据插入 |
支持批量导入 |
支持单条和批量导入 |
数据更新 |
不支持(数据导入后就不再支持改变) |
支持 |
索引 |
支持 |
支持 |
分区 |
支持 |
支持 |
执行延迟 |
高 |
低 |
扩展 |
好 |
有限 |
Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别的更多相关文章
- SaaS系列介绍之十三: SaaS系统体系架构
1 系统体系架构设计 软件开发中系统体系架构决定了一个系统稳定性.健壮性.可扩展性.兼容性和可用性,它是系统的灵魂.体系架构是架构师所关注的核心.良好的体系架构是系统成功的开端,否则,再好的代码与设计 ...
- Hive基础(2)---(启动HiveServer2)Hive严格模式
启动方式 1, hive 命令行模式,直接输入/hive/bin/hive的执行程序,或者输入 hive –service cli 用于linux平台命令行查询,查询语句基本跟mysql查询语句类似 ...
- Hive性能优化【核心思想、运行模式、并行计算】
一.核心思想 把HQL当做MapReduce程序去优化. 注意,以下SQL不会转为MapReduce执行: 1.select仅查询本表字段. 2.where仅对本表字段做条件过滤. 二.启动Hive ...
- Hive的连接和运行模式
原文链接: https://www.toutiao.com/i6771018203687551495/ Hive的连接 启动hadoop的时候将history也启动,如果出问题,可以方便我们后续定位 ...
- hive的体系架构及安装
1,什么是Hive? Hive是能够用类SQL的方式操作HDFS里面数据一个数据仓库的框架,这个类SQL我们称之为HQL(Hive Query Language) 2,什么是数据仓库? 存放数据的地方 ...
- (cdh)hive 基础知识 名词详解及架构
过程 启动 hive 之后出现的 CLI 是查询任务的入口,CLI 提交任务给 Driver Driver 接收到任务后调用 Compiler,Executor,Optimizer 将 SQL 语句转 ...
- Hive基础讲解
一.Hive背景介绍 Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的.马云在退休的时候说互联网现在进入了大数据时代,大数据是现在互联网的趋势,而had ...
- [转帖]Hive基础(一)
Hive基础(一) 2018-12-19 15:35:03 人间怪物 阅读数 234 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接 ...
- Hadoop优势,组成的相关架构,大数据生态体系下的模式
Hadoop优势,组成的相关架构,大数据生态体系下的模式 一.Hadoop的优势 二.Hadoop的组成 2.1 HDFS架构 2.2 Yarn架构 2.3 MapReduce架构 三.大数据生态体系 ...
随机推荐
- centos7.5 安装 redis-4.0.11
1.下载redis包 wget wget http://download.redis.io/releases/redis-4.0.11.tar.gz 2.解压安装 #解压 .tar.gz #安装 cd ...
- Redis (error) NOAUTH Authentication required.解决方法
当设置redis密码后,打开客户端,需要使用密码验证 auth 123456 就是设置的密码
- (转)2017年12月宋华教授携IBM中国研究院、猪八戒网、中航信托、33复杂美共同论道智慧供应链金融
今年10月,国务院发布的<关于积极推进供应链创新与应用的指导意见>,不仅强调了发展服务型制造的重要性,同时也指出要积极稳妥发展供应链金融,推动供应链金融服务实体经济,鼓励商业银行.供应链核 ...
- WebGL编程指南案例解析之平移和旋转的math库实现
这里说的math库实现,指的是,通过一般的加减乘除(角度计算)来更新坐标值. 因为涉及到坐标的变化,所以这里都是基于对顶点着色器的修改 平移: var vShader = ` attribute ve ...
- Python: PS 图像调整--明度调整
本文用 Python 实现 PS 图像调整中的明度调整: 我们知道,一般的非线性RGB亮度调整只是在原有R.G.B值基础上增加和减少一定量来实现的,而PS的明度调整原理还得从前面那个公式上去找.我们将 ...
- SYSTEM\sys\sys.c:33:7: error: expected '(' before 'void' __ASM void MSR_MSP(u32 addr)
在STM32中的sys.c文件编译报出这个错误时: __ASM void MSR_MSP(u32 addr){ MSR MSP, r0 //set Main Stack value BX r14} 如 ...
- X-Mirage苹果屏幕录制工具7天试用期破解 imsoft.cnblogs
X-Mirage (PC) 能让你的 Windows 变成一个 iPhone.iPad 或者 iPod Touch 的屏幕镜像,应用程序.游戏.照片.视频等等一切可以在 iOS 移动端显示的东西,都镜 ...
- BZOJ3925: [Zjoi2015]地震后的幻想乡【概率期望+状压DP】
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
- java反射机制的作用与优点
java的反射机制就是增加程序的灵活性,避免将程序写死到代码里,例如: 实例化一个 person()对象, 不使用反射, new person(); 如果想变成 实例化 其他类, 那么必须修改源代码, ...
- hot load那点事
热加载,最初接触的时候是使用create-react-app的时候,创建一个项目出来,修改一点代码,页面自动刷新了,贫道当时就感叹,这是造福开发者的事情. 再后来编写静态页面的时候使用 VS Code ...