(笔者自己做记录)

1.Hive内外部表的区别
删除表是否影响外部数据
2.Hive如何做到权限管理
hive下可以修改配置后创建用户管理,但是仅仅是为了防止误操而已,如果要真的为了安全操作建议使用

Kerberos
3.Hive的数据倾斜和调优
key分布不均匀造成 去null
调节参数
hive.map.aggr=true
map端聚合,相当于combiner
hive.groupby.skewindata=true
4.Hive文件压缩格式有哪些?压缩效率如何
开启压缩
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set mapred.output.compression.type=BLOCK;

TextFile(压缩方式Gzip,Bzip2 压缩后不支持split)
SequenceFile-<key,value> (NONE,RECORD,BLOCK!。Record)
RCFile(存储方式:数据按行分块,每块按列存储。结合了行存储和列存储的优点)
ORCFile
(GZIP LZO DefaultCodec snappy)
5.说说对桶表的理解
对数据的细化 取模分开存储数据
6.Hive解析hql转化为MR的执行过程

、SemanticAnalyzer的主要分析过程:调用analyzeInternal函数
1)doPhase1过程:主要是将sql语句中涉及到的各种信息存储起来,存到QB中去,供后续调用
2)getMetaData:这个过程主要是获取元数据信息,主要是sql中涉及到的表到元数据的关联
3)genPlan:这是最重要的过程之一,主要是生成算子树(operator tree)
4)optimize:优化,对算子树进行一些优化操作,例如列剪枝等
5)genMapRedTasks:这个步骤是最关键的步骤,将算子树通过一定的规则生成若干相互以来的MR任务

7.Hive的分组排序(row_number()),组内TopN
8.hive有哪些保存元数据的方式,有什么特点
1、Single User Mode:
默认安装hive,hive是使用derby内存数据库保存hive的元数据,这样是不可以并发调用hive的,
这种模式时hive默认的存储模式,。
2、Multi
User Mode:
通过网络连接到一个数据库中,是最经常使用到的模式。假设使用本机mysql服务器存储元数据。这种存储

方式需要在本地运行一个mysql服务器,并作如下配置(需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下

)。
3、Remote Server Mode:
在服务器端启动一个 MetaStoreServer,客户端利用 Thrift 协议通过 MetaStoreServer 访问元数据

库。

9.hive能建多个库吗
可以
10.hive的底层怎么与数据库交互的。
11.hive实现统计的查询语句以及与mr的区别
12.对于hive你写过哪些UDF函数,作用是干什么的
13.hive与hbase的区别
明显
14.hive中的压缩格式textfile, sequencefile, rcfile, orc的区别
15.hive的工作原理
16.编写hive自定义函数,实现oracle数据库中的addmonths函数功能,然后封装到hive函数库中。

load data local inpath '文件路径' into table t partition(dt="2016-07-25");

hive自定义函数
udf步骤:
1.写一个类继承(org.apache.hadoop.hive.ql.)UDF
2.覆盖方法eturn evaluate(param...)
3.打jar包,提交hive服务器
4.添加到hive资源里面(add jar jar的路径)--->临时的加入的hive的classpath
5.创建一个临时的函数create temparay function functionName as '自定义类的全类名';
6.执行相应的操作
7[可选]、drop 临时函数
网上有例子:根据生日得到属性和星座

hive 常见面试题的更多相关文章

  1. Hive 常见面试题(一)

    面试题: hive 内部表和外部表的区别? hive 是如何实现分区的? Hive 有哪些方式保存元数据,各有哪些优缺点? hive中order by.distribute by.sort by和cl ...

  2. Hive 常见面试题(二)

    1.Hive行转列和列转行如何实现? 行转列 使用 concat_ws 实现行转列. 例如: select user_id, concat_ws(',',collect_list(order_id)) ...

  3. java常见面试题及答案 1-10(基础篇)

    java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...

  4. Web开发的常见面试题HTML和HTML5等

    作为一名前端开发人员,HTML,HTML5以及网站优化都是必须掌握的技术,下面列举一下HTML, HTML5, 网站优化等常见的面试题: HTML常见面试题: 1. 什么是Semantic HTML( ...

  5. 常见面试题之ListView的复用及如何优化

    经常有人问我,作为刚毕业的要去面试,关于安卓开发的问题,技术面试官会经常问哪些问题呢?我想来想去不能一股脑的全写出来,我准备把这些问题单独拿出来写,并详细的分析一下,这样对于初学者是最有帮助的.这次的 ...

  6. iOS常见面试题汇总

    iOS常见面试题汇总 1. 什么是 ARC? (ARC 是为了解决什么问题而诞生的?) ARC 是 Automatic Reference Counting 的缩写, 即自动引用计数. 这是苹果在 i ...

  7. JDBC常见面试题

    以下我是归纳的JDBC知识点图: 图上的知识点都可以在我其他的文章内找到相应内容. JDBC常见面试题 JDBC操作数据库的步骤 ? JDBC操作数据库的步骤 ? 注册数据库驱动. 建立数据库连接. ...

  8. Mybatis常见面试题

    Mybatis常见面试题 #{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{}解析传递进来的参数数据 ${}对传递进来的参数原样拼接在SQL中 #{}是 ...

  9. JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

随机推荐

  1. jquery判断点击事件是否为指定区域

    <script type="text/javascript"> $(document).click(function(e){ e = window.event || e ...

  2. 如何利用SVN合并代码

    一.  背景     平时在进行开发时,一般都会有多版本同时进行,包括项目版本.周版本.紧急版本等,当某一个版本具备上线条件后,需要在上一个已发布的版本基础上进行发布,才能够避免出现版本相互覆盖,因此 ...

  3. RAD,V模型

    介绍: RAD(Rap Application Developmen快速应用开发t)模型是软件开发过程中的一个重要模型,由于模型构图类似字母V,所以又称为软件开发的V模型.它通过开发和测试同时进行的方 ...

  4. Windows Azure上搭建SSTP VPN

    一.服务器设置 首先,从0开始,你需要创建一个新的VM.我选择Windows Server 2012 R2,所有步骤和创建普通VM都一样,但最后在防火墙设置里一定要打开TCP 443端口: 创建完成后 ...

  5. UVa 10318 Security Panel

    题意:给你一个3*3的翻转模版,深色部分表示翻转,浅色部分不变.然后你可以在r*c的矩形里依照模版进行翻转,要求所有点亮所有块.输出最小的步骤. 思路:有一点比较好想.每个块至多被翻转一次,翻两次的效 ...

  6. struts2DMI(动态方法调用)

    DMI(Dynamic Method Invoke)即动态,是strus2的一个特性,我们知道,在最开始学习strus2时,往往一个action中只有一个excute方法,比如说add,delete, ...

  7. kali 2016的基础配置

    1.Kali 2016的更新源 deb http://http.kali.org/kali kali-rolling main contrib non-free 2.安装虚拟机 apt-get upd ...

  8. React Native 弹性布局FlexBox

    React Native采用一中全新的布局方式:FlexBox(弹性布局).可以很方便的实现各种复杂布局,是全新的针对web和移动开发布局的一种实现方式. 何为FlexBox? 完整名称为:the f ...

  9. APNS IOS PHP 苹果推送

    IOS---APNS 消息推送实践 首先,需要一个pem的证书,该证书需要与开发时签名用的一致. 具体生成pem证书方法如下: 1. 登录到 iPhone Developer Connection P ...

  10. 3、网页制作Dreamweaver(表单form)

    表单form (虚线不显示) 1.写法: <form id="form1" name="form1" method="post" ac ...