绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Hive常见面试题1.0
2020-07-01 17:09:02

hive 的使用,内外部表的区别,分区作用, UDF 和 Hive 优化

(1)hive的使用:仓库,工具

(2)内部表:加载数据到hive所在的hdfs目录,删除时,元数据文件都删除

外部表:不加载数据到Hive所在的hdfs目录,删除时,只删除表结构

(3)分区作用:防止数据倾斜

(4)UDF函数:用户自定义的函数(主要解决格式,计算问题),需要继承UDF类

class TestUDFHive extends UDF{
public String evalut(String str){
try{
return "hello" + str
}catch(Exception e){
return str + "error"
}
}
}

(5)Hive优化:看做mapreduce处理

排序优化:sort by效率高于order by

分区:使用静态分区(statu_date="20160516",location="beijing"),每个分区对应hdfs上的一个目录,减少job和task数量;

使用表连接操作,解决group by数据倾斜问题

设置hive.groupby.skewindata=true,那么hive会自动负载均衡,叫文件合并成大文件

使用UDF或UDAF函数:cnblogs.com/ggjucheng/a

常用数据导入数据库的方法有哪些?导入到什么数据库?

eg:将Hive统计分析结果导入到MySQL数据库表中——sqoop操作

可以使用flume/FTP/Kettle/DataX。。。

业务量有多大?有多少行数据??

根据业务自行定义。。。。。

hive跟hbase的区别?

共同点:

1.hbase 与 hive 都是架构在hadoop之上的。都是用hadoop作为底层存储

区别:

2.Hive是建立在Hadoop之上为了减少MapReduce Jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目

3.想想你在操作RMDB数据库,如果全表扫描,就用Hive+Hadoop/Spark/flink,如果是索引访问,就用HBase+Hadoop/Spark/Flink

4.Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。

5.Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。

6.hive是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作

7.hbase是列存储

8.hdfs作为底层存储,hdfs是存放文件的系统,而Hbase负责组织文件

9.hive需要到hdfs存储文件,需要用到MapReduce计算框架

Hive有哪些方式存储元数据,各有哪些有点?

三种:内存数据库 derby—小,不常用。

本地mysql/常用远程段Mysql

Hive内部表与外部表的区别

Hive创建内部表时,会将数据移动到数据仓库指向的路径,若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据,这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。。

Hive底层与数据库交互原理

hive有一套自己的sql解析引擎,称作 metastore ,存储在mysql或者derby数据库中,可以将sql语句转化为mapreducejob任务执行

Hive如何调优

  1. 底层是MapReduce,所以可以说是MapReduce优化
  2. 小文件合并成大文件
  3. Reduce数据在代码中介于节点数*reduceTask的大数量的0.95倍到1.75倍
  4. 写一个UDF函数,在建表的时候制定好分区
  5. 配置文件中,打开在 map 端的合并
  6. 在库表设计的时候,尽量考虑rowkey 和 columnfamily的特性
  7. 进行hbase集群的调优(参考hbase调优)

Hive中德meta store用来做什么的?

metastore是一套映射工具,将sql语句转换成对应的job任务区进行执行

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Hive专区
创建时间:2020-07-01 14:09:32
Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。 Hive是Facebook 2008年8月刚开源的一个数据仓库框架,其系统目标与 Pig 有相似之处,但它有一些Pig目前还不支持的机制,比如:更丰富的类型系统、更类似SQL的查询语言、Table/Partition元数据的持久化等。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • markriver
    专家
戳我,来吐槽~