Hive的一些学习内容
Hive相关
- 什么是metastore?
- metadata是元数据,包含数据库、表、字段、分区等信息。作用:客户端连接MetaStore服务,metastore再去连接MySQL数据库存储元数据,有了metastore服务可以实现多客户端同时连接MySQL。
- metastore三种配置:内嵌(Derby)、本地元存储、远程元存储
- Hive的元数据默认存储在Derby数据库,建议存储在像MySQL这种关系型数据库中。
- [为什么建议存储在关系型数据库中?]:默认的Derby数据库只能建立一个客户端连接,不能实现多客户端同时访问。不适合生产环境。
- metastore安装方式有什么区别?
- 内嵌:使用自带的Derby数据库存储元数据,不需要额外的MetaStore服务。一次仅能有一个客户端连接,适合实验环境,不适合生产环境
- 本地元存储:本地安装MySQL来存储元数据,hive服务和metastore服务运行在同一个进程中。
- 远程元存储:Hive服务和MetaStore服务在不同的进程中。
- 什么是Managed Table和External Table?
- Hive中有两种类型的表:Managed Table(内部表)和External Table(外部表)
- 内部表:hive的默认表类型,内部表的数据通常存放在/user/root/warehouse下
- 使用describe formatted 表名 来查看是内部表还是外部表
- 删除内部表时,存放在HDFS上的真实数据也一并删除。
- 外部表:适合于在hive之外使用表的数据的情况,删除外部表时,只是删除了元数据,真是数据并没有删除
- 什么时候使用Managed Table和External Table
- 内部表适用于临时创建的中间表
- 外部表数据多部门共享
hive有哪些复合数据类型
Map:key-value
Struct:不同数据类型的集合
Array:同类型元素的集合
UnionType:代表一个可以具有属于所选择的任何数据类型的值的列hive分区有哪些好处
- 加速查询
- 使用分区列的名称来创建子目录,当使用where子句执行查询操作时,只会扫描特定的子目录,而不用扫描全表。还是加速查询
- hive分区和分桶的区别
- 分区:以字段的形式在表结构中存在,使用describe table_name 来查看字段是否存在,但是该字段不存放真实数据,仅仅是分区的表示(伪列)
- 分桶:一种细粒度的数据划分操作。实际生产中使用较少。[采用对列值哈希,然后除以桶的个数求余]
- hive如何动态分区
- 静态分区:加载数据时(显式)指定分区列
- 动态分区:将数据推送到Hive,Hive决定哪个值进入哪个分区。需要启动动态分区[hive.exec.dynamic.parition.mode=nostrict]
- map join优化手段
- Join时大表放在后面[执行join时,需要选择哪个表被流式传输,哪个表被缓存。Hive将Join语句中最后一个表用于流式传输,所以要确该表在两者之间是大的一方]
- Sort-Merge-Bucket(SMB) Map Join[使用前提:所有的表必须是桶分区(bucket)和已经排序的(sort)]
- 如何创建bucket表
- Hive默认是禁用分桶功能的,设置属性来强制使用分桶功能[hive.enforce.bucketing=true]
- hive有哪些file formats
- Text File Format:默认格式,不压缩数据,磁盘开销大。
- Sequence File Format:SF是Hadoop API提供的一种二进制文件支持。使用方便、可分割、可压缩。
SF支持3中压缩格式:NONE、RECORD、BLOCK,建议使用BLOCK压缩。 - RC File Format:RC是一种行列存储相结合的存储方式。
- Parquet:列式数据存储
- AVRO:avro Schema数据序列化
- ORC:对RCFile做了优化,支持各种复杂的数据类型。
- hive最优的file formates是什么
ORC
- ORC将行的集合存储在一个文件中,且集合内的行数据将以列式存储。采用列式格式是为了压缩,从而降低存储成本。
- 查询:查询的是指定列而不是行,记录以列式存储
- ORC基于列创建索引,查询效率高。
- hive传参
- 使用--hivevar传入
- orderby 和 sortby的区别
- order by:全局排序,但是只能有一个partition
- sort by:局部排序,全局无序,partition内部有序,partition与partition之间没有关系。
- hive和hbase的区别
- hive支持SQL查询,Hbase不支持。
- hive不支持Record级别和删除操作。
- hive定义为数仓,HBase定义为NOSQL数据库。
Hive的一些学习内容的更多相关文章
- web前端开发学习内容
应该 具备的 知识技能 :懂web标准,熟练手写 xhtml css3 并符合 符合w3c标准 代码能 兼容主流浏览器.ie6.7.8.9 ff 等. ...
- STM32学习内容和计划
一.STM32学习内容(流程) 1.学习STM32开发流程 ①MDK使用.建立工程.调试等 ②库开发方法 2.学习STM32常用外设开发 ①GPIO ②中断 ③定时器 ④串口 ⑤CAN 3.学习STM ...
- u-boot代码学习内容
前言 u-boot代码庞大,不可能全部细读,只能有选择的读部分代码.在读代码之前,根据韦东山教材,关于代码学习内容和深度做以下预先划定. 一.Makefile.mkconfig.config.mk等 ...
- 2.Freshman阶段学习内容的确定
我刷知乎.在知乎上答题的程序员,不是很牛逼就是更牛逼,说起各种系统.各种系统的各种版本.各种语言.数据库.算法.IT届的各种圣战都有板有眼.信手拈来.头头是道,不得不服.这导致了一些非常严重的问题:我 ...
- 20155209 2016-2017-2 《Java程序设计》第九周学习总结 ## 教材学习内容总结
教材学习内容总结 JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据. 执行流程: •连接数据源,如:数据库. •为数据库传递查询和更新指令. •处理数据库响应并返回的结 ...
- JAVA第十周《网络编程》学习内容总结
JAVA第十周<网络编程>学习内容总结 学习内容总结 1.初听到网络编程四个字可能会觉得很困难,实际上网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据,把数据发送到指定的位置, ...
- # 20145118 《Java程序设计》第4周学习总结 ## 教材学习内容总结
20145118 <Java程序设计>第4周学习总结 教材学习内容总结 本周内容为教材第六.七两张内容. 重点概念: 1.面向对象中,子类继承父类,避免重复的行为定义,是一种简化操作. 2 ...
- 20145118 《Java程序设计》第5周学习总结 教材学习内容总结
20145118 <Java程序设计>第5周学习总结 教材学习内容总结 1.Java中所有错误都会被打包成对象,可以通过try.catch语法对错误对象作处理,先执行try,如果出错则跳出 ...
- 20155328 2016-2017-2 《Java程序设计》 第十周学习内容总结
20155328 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 JAVA和ANDROID开发学习指南 第22章 网络概览 两台计算机用于通信的语言叫做&qu ...
随机推荐
- 【每日一句】make a scene
scene有场面.场景的意思,只是make a scene可不是指做场面.scene还有还有一个意思,指很生气而大吵大闹(的情景),因此make a scene就是指某人情绪失控发脾气.如今一起从以下 ...
- 熟知MySQL存储过程
存储过程(Stored Procedure)是一组为了完毕特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给定參数(假设该存储过程带有參数)来调用运行它. MySQL 存储 ...
- "Redis客户端连接数一直降不下来"的有关问题解决 good
[线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...
- c#调用ffmpeg嵌入srt/ass字幕提示Unable to open xxx.srt......
最近接触到c#调用ffmpeg嵌入srt/ass字幕,碰到一个错误困扰了很久 Unable to open xxx.srt Error initializing filter 'subtitles' ...
- WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口
原文:WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/p ...
- hdu3118Arbiter (使用二分图的定义,枚举每个状态)
Arbiter Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Sub ...
- Emgu-WPF学习使用-阈值化
原文:Emgu-WPF学习使用-阈值化 环境:Win8 64位 Vs2015 Emgu 版本:emgucv-windesktop 3.2.0.2682 上图为常用阈值化处理效果.不同阈值设置可呈现不同 ...
- WPF 4 日期选择器(DatePicker)
原文:WPF 4 日期选择器(DatePicker) 前一篇<WPF 4 日历控件(Calendar)> 中我们对日历控件的使用方式有了基本了解,本篇将继续介绍WPF 4 中另一 ...
- JAVASCRIPT高程笔记-------第五章 引用类型
一.Object类型 1.1创建方式 ①new关键字 : var person = new Oject(); ②给定直接量: var person = { name : "zhangsan& ...
- C# Thread 参数
Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托. Thread (ThreadStart) 初 ...