2025年spark面试题及答案100道(spark面试题目)

spark面试题及答案100道(spark面试题目)p 1 hive 和 hbase 的区别 p Hive hive 是 hadoop 数据仓库管理工具 严格来说 不是数据库 本身是不存储数据和处理数据的 其依赖于 HDFS 存储数据 依赖于 MapReducer 进行数据处理 既可以计算又可以储存 hive 中的计算是由 mapreduce 任务运行的 执行较慢 不适合做实时 HBase 1 HBase 是一种分布式 可扩展

大家好,我是讯享网,很高兴认识大家。



 <p>1、hive和hbase的区别</p> 

讯享网

Hive: hive是hadoop数据仓库管理工具,严格来说,不是数据库,本身是不存储数据和处理数据的,其依赖于HDFS存储数据,依赖于MapReducer进行数据处理 既可以计算又可以储存 hive中的计算是由mapreduce任务运行的,执行较慢,不适合做实时

HBase:

1.HBase是一种分布式、可扩展、支持海量数据存储的NOSQL数据库

2.HBase主要适用于海量数据的实时数据处理(随机读写)

3.由于HDFS不支持随机读写,而HBase正是为此而诞生的,弥补了HDFS的不可随机读写。

区别:

1.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。总的来说,hive是适用于离线数据的批处理,hbase是适用于实时数据的处理。

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

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

4.由于HDFS的不可随机读写,hive是不支持随机写操作,而hbase支持随机写入操作。 5.HBase只支持简单的键查询,不支持复杂的条件查询

2、正常工作的hadoop集群中hadoop都需要启动哪些进程,作用分别是什么

HDFS : Namenode Datanode SecondaryNamenode(单机模式中有 集群模式中是在 从机器中)


讯享网

namenode:负责hdfs集群的管理,管理其他的datanode节点,记录各个块的信息,处理客户端的请求,数据存放在内存中

datanode: 数据存储,数据节点,真正存储数据的地方

secondaryNamenode:小秘,执行fsimage和edtis的合成操作

Yarn: ResourceManager NodeManager JobHistoryServer

resourceManager:负责管理集群资源和调度作业,分配计算资源给各个任务。 nodeManager: 在每个工作节点上运行,监控节点的健康状况,执行任务,并报告资源使用情况给resourceManager

Zookeeper : 管理resourceManager和 nameNode的选举,确保 resourceManager和 active nameNode的高可用性。

补充:zookeeper的选举机制:

3、hadoop数据倾斜以及解决办法

(hadoop数据倾斜其实就是mapreduce 和 hive 的数据倾斜)

数据倾斜最直观的表现就是任务长时间维持在 99%等 大量的key被分配到了同一个任务上,导致一些人累死一些人闲死的情况

要注意: 一些sql本身就带有数据倾斜 表中有大量的空值 (Null) 也可能会造成数据倾斜

解决办法:

1) 开启负载均衡 set hive.map.aggr=true set hive.groupby.skewindata=true

2) 自定义分区

3) 使用 Combine 聚合并精简数据

4) 尽可能的在 map 端就进行 join数据关联

5) 少使用 count distinct ,而用 union all 替代

6) 处理一些不可拆分的大文件时也会数据倾斜,可以先在hdfs上进行解压后再操作

4、简单说一下yarn的几种调度器

讯享网

补充:

 
    


小讯
上一篇 2025-05-04 09:35
下一篇 2025-05-03 18:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177157.html