大数据面试题及答案【最新版】大数据高级面试题大全(最新版),发现网上很多大数据面试题都没有答案,所以花了很长时间搜集,本套大数据面试题大全

最近由于要准备面试就开始提早看些面试、笔试题。以下是自己总结的一些经常出现、有价值的试题,包含hadoop、hive、hbase、storm、spark等。答案仅供参考,如有错误,请指出。试题不定时更新。

最近有空打开文章,看了这么多浏览量,我就加急搞了一些新的题

我在 CSDN 发布的其他的 Jvm ,SpringCloud,SpringBoot 面试题

SpringBoot面试题及答案140道(最新)持续更新_架构师专栏的博客-CSDN博客工作5年,处于找工作中ing。今年10月份刚刚整理出来的SpringBoot面试题,时间比较赶就没有按照模块分类排序了。总而言之,顺序比较乱,希望大家耐着性子 看。如果实在介意,评论告知,我会视情况作修改的。另外如果大家觉得我找的SpringBoot面试题答案不够清晰,欢迎私信或者评论只出,我看到都会去修改的!1、SpringBoot有哪些优点?SpringBoot的优点有:1、减少开发,测试时间和努力。2、使用JavaConfig有助于避免使用XML。3、避免大量的Maven..._springboot面试题https://souyunku.blog.csdn.net/article/details/120850410300道SpringCloud面试题及答案(最新整理)_架构师专栏的博客-CSDN博客最新SpringCloud面试题及答案【附答案解析】SpringCloud面试题及答案,SpringCloud最新面试题及答案,SpringCloud面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的。这些答案难免会存在一些错误,仅供大家参考。如果发现错误还望大家多多包涵,不吝赐教,谢谢~如果不背 SpringCloud面试题的答案,肯定面试会挂!这套SpringCloud面试题大全,希望对大家有帮助哈~博主已将以下这些面试题整理成了一个Java面试手册,是PDF版_springcloud面试题https://souyunku.blog.csdn.net/article/details/121652224Java中级面试题及答案(120道Java中级面试题大汇总)_架构师专栏的博客-CSDN博客Java中级面试题及答案【最新版及答案,干货!!!这是一个中级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。Java中级面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来看看小编精心整理的一些java高级工程师面试题及答案吧。如果不背 Java面试题的答案,肯定面试会挂!这套Java面试题大全,希望对大家有帮助哈~博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的_java中级面试题https://souyunku.blog.csdn.net/article/details/121208556110道 MySQL面试题及答案 (持续更新)_mysql 面试题_架构师专栏的博客-CSDN博客MySQL面试题及答案 【最新版】MySQL面试题大全,发现网上很多MySQL面试题及答案整理都没有答案,所以花了很长时间搜集,本套MySQL面试题大全如果不背 MySQL面试题的答案,肯定面试会挂!这套MySQL面试题大全,希望对大家有帮助哈~博主已将以下这些面试题整理成了一个面试手册,是PDF版的1、NOW()和CURRENT_DATE()有什么区别?NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒。CURRENT_DATE()仅显示当前年份,月份和日期。2、CHA_mysql 面试题https://souyunku.blog.csdn.net/article/details/121677978110道 Jvm面试题总结及答案 (持续更新)_架构师专栏的博客-CSDN博客最新Jvm面试题总结及答案【附答案解析】Jvm面试题及答案2021,Jvm面试题最新面试题,Jvm面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的。这些答案难免会存在一些错误,仅供大家参考。如果发现错误还望大家多多包涵,不吝赐教,谢谢~如果不背 Jvm面试题的答案,肯定面试会挂!这套Jvm面试题大全,希望对大家有帮助哈~博主已将以下这些面试题整理成了一个面试手册,是PDF版的1、谈谈动态年龄判断1、这里涉及到 -XX:TargetSurvivorRati._jvm面试题https://souyunku.blog.csdn.net/article/details/121648703已经整理成7000多页,面试手册PDF版已经整理成7000多页,面试手册PDF版https://mp.weixin.qq.com/s/TMBjoux5tpcqmbEFR-pDrA

如果不背 大数据面试题的答案,肯定面试会挂!

这套 大数据面试题大全,希望对大家有帮助哈~

新增:谈谈Zookeeper理解

Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题( 解决单点故障问题 )。

Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化,通过监控这些数据状态的变化,从而可以达到基于数据的集群管理

总结: Zookeeper=文件系统+通知机制

spark

新增:请列举出曾经修改过的/etc/下面的文件,并说明修改要解决什么问题?

/etc/profile这个文件,主要是用来配置环境变量。让hadoop命令可以在任意目录下面执行。

/ect/sudoers

/etc/hosts

/etc/sysconfig/network

/etc/inittab

新增:宕机分为HMaster宕机和HRegisoner宕机,如果是HRegisoner宕机,HMaster会将其所管理的region重新分布到其他活动的RegionServer上,由于数据和日志都持久在HDFS中,该操作不会导致数据丢失。所以数据的一致性和安全性是有保障的。

如果是HMaster宕机,HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行。即ZooKeeper会保证总会有一个HMaster在对外提供服务。

新增:offset是每天消息的偏移量

每个日志文件都有一个offset来唯一标记一条信息,由8个自己数字表示,表示此消息在分区中所处的起始位置

每个分区再物理存储层面,由多个logfile组成(segment)

最小的offset表示segment中起始消息的offset

新增:hbase中表的特点

大:上亿行,上百万列

无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列

面向列的存储和权限控制,列族独立索引

对于为null的列,并不占用存储空间,因此表可以设置的非常稀疏

数据多版本:可以有多个版本,系统自动分配,时间戳为版本号

数据类型单一:只有字节数组 byte[]

129.hbase 表逻辑结构

表有 行 和 列组成,列划分为若干个列族cloumn

表明 test

rowkey 列族1:base_info 列族2:xxx_info

0001 name:zhangsan age:20 address:bj

0002 name:lishi age:50 sex:male address:shanghai hoppies:sing

rowkey:hbase的行索引,按照rowkey字典顺序排序

cell可以锁定一个值:Rowkey+列族+列族下的列的名字+值+时间戳

新增:请写出以下的shell命令

1、 杀死一个job

2、 删除hdfs上的 /tmp/aaa目录

3、 加入一个新的存储节点和删除一个节点需要执行的命令

4、 hadoop job –list 得到job的id,然后执 行 hadoop job -kill jobId就可以杀死一个指定jobId的job工作了。

5、 hadoopfs -rmr /tmp/aaa

6、 增加一个新的节点在新的几点上执行

Hadoop  daemon.sh start  datanode

Hadooop daemon.sh  start  tasktracker/nodemanager

下线时,要在conf目录下的excludes文件中列出要下线的datanode机器主机名

然后在主节点中执行  hadoop  dfsadmin  -refreshnodes  à下线一个datanode

删除一个节点的时候,只需要在主节点执行

hadoop mradmin -refreshnodes —下线一个tasktracker/nodemanager

新增:简答说一下hadoop的map-reduce编程模型

首先map task会从本地文件系统读取数据,转换成key-value形式的键值对集合

使用的是hadoop内置的数据类型,比如longwritable、text等

将键值对集合输入mapper进行业务处理过程,将其转换成需要的key-value在输出

之后会进行一个partition分区操作,默认使用的是hashpartitioner,可以通过重写hashpartitioner的getpartition方法来自定义分区规则

之后会对key进行进行sort排序,grouping分组操作将相同key的value合并分组输出,在这里可以使用自定义的数据类型,重写WritableComparator的Comparator方法来自定义排序规则,重写RawComparator的compara方法来自定义分组规则

之后进行一个combiner归约操作,其实就是一个本地段的reduce预处理,以减小后面shufle和reducer的工作量

reduce task会通过网络将各个数据收集进行reduce处理,最后将数据保存或者显示,结束整个job

新增:MR程序运行的时候会有什么比较常见的问题?

比如说作业中大部分都完成了,但是总有几个reduce一直在运行。

这是因为这几个reduce中的处理的数据要远远大于其他的reduce,可能是对键值对任务划分的不均匀造成的数据倾斜。

解决的方法可以在分区的时候重新定义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理,或者是在map端的combiner中进行数据预处理的操作。

新增:hive能像关系型数据库那样建多个库吗?

当然能了。

新增:请列出你所知道的hadoop调度器,并简要说明其工作方法

Fifo schedular :默认,先进先出的原则

Capacity schedular :计算能力调度器,选择占用最小、优先级高的先执行,依此类推。

Fair schedular:公平调度,所有的 job 具有相同的资源。

博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的

已经整理成7000多页,面试手册PDF版已经整理成7000多页,面试手册PDF版https://mp.weixin.qq.com/s/TMBjoux5tpcqmbEFR-pDrA

1、datanode在什么情况下不会备份

强制关闭或非正常断电时

2、请列出你所知道的hadoop调度器,并简要说明其工作方法?

比较流行的三种调度器有:默认调度器FIFO,计算能力调度器CapacityScheduler,公平调度器Fair Scheduler

默认调度器FIFO

hadoop中默认的调度器,采用先进先出的原则

计算能力调度器CapacityScheduler

选择占用资源小,优先级高的先执行

公平调度器FairScheduler

同一队列中的作业公平共享队列中所有资源

3、Hadoop安装在什么目录下?

Cloudera和Apache使用相同的目录结构,Hadoop被安装在cdusrlibhadoop-0.20。

4、当你输入hadoopfsck 造成“connection refused java exception’”时,系统究竟发生了什么?

这意味着Namenode没有运行在你的VM之上。

5、spark调优

1、 避免创建重复RDD

2、 尽可能复用同一个RDD

3、 对多次使用的RDD进行持久化

4、 避免使用shuffle算子

5、 使用map-side预聚合shuffle操作

6、 使用高性能的算子

7、 广播大变量

8、 使用Kryo序列化

9、 优化数据结构

6、RAM的溢出因子是?

溢出因子(Spill factor)是临时文件中储存文件的大小,也就是Hadoop-temp目录。

7、hive sql知识点

DML 数据操纵语言

DDL 数据定义语言,用语定义和管理数据库中的对象

8、为什么hive的分区

为了避免select扫描全表,hive提出了分区表partitionedby的概念,给文件归类打上表示

静态分区:

单分区建表

create table par_tab(name string,nation string) partitioned by (sex string) row format delimited fields terminated by ‘,’;

加载:load data local inpath ‘/hdfs/…’ into table par_tab partition(sex=‘man’)

在创建分区表的时候,系统会在hive数据仓库默认路径/user/hive/warehouse/创建目录,在创建sex=man的目录,最后在分区名下存放实际的数据文件

多分区建表

create table par_tab(name string,nation string) partitioned by (sex string,dt string) row format delimited fields terminated by ',';

load data local inpath '/hdfs/...' into table par_tab partition(sex='man',dt="2019-08-08")

当我们查询所有的man时候,man一下的所有日期下的数据都会被查出来;如果只查询日期分区,那么hive会对路径进行修剪,从而只扫描日期分区,性别分区不做过滤

动态分区

动态分区与静态分区区别就是不指定分区目录,有系统自己选择

开启动态分区 set hive.exec.dynamic.partition=true

9、当前日志采样格式为

a , b , c , d

b , b , f , e

a , a , c , f

10、Namenode、Job tracker和task tracker的端口号是?

Namenode,70;Job tracker,30;Task tracker,60。

1、请用java实现非递归二分查询

public class BinarySearchClass { public static int binary_search(int[] array, int value) { int beginIndex = 0;// 低位下标 int endIndex = array.length - 1;// 高位下标 int midIndex = -1; while (beginIndex <= endIndex) { midIndex = beginIndex + (endIndex - beginIndex) / 2;//防止溢出 if (value == array[midIndex]) { return midIndex; } else if (value < array[midIndex]) { endIndex = midIndex - 1; } else { beginIndex = midIndex + 1; } } return -1; //找到了,返回找到的数值的下标,没找到,返回-1 } //start 提示:自动阅卷起始唯一标识,请勿删除或增加。 public static void main(String[] args) { System.out.println("Start..."); int[] myArray = new int[] { 1, 2, 3, 5, 6, 7, 8, 9 }; System.out.println("查找数字8的下标:"); System.out.println(binary_search(myArray, 8)); } //end //提示:自动阅卷结束唯一标识,请勿删除或增加。 }

2、是客户端还是Namenode决定输入的分片?

这并不是客户端决定的,在配置文件中以及决定分片细则。

3、mapred.job.tracker命令的作用?

可以让你知道哪个节点是Job Tracker。

4、全分布模式又有什么注意点?

全分布模式通常被用于生产环境,这里我们使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,以及task tracker运行的主机。在分布式环境下,主节点和从节点会分开。

5、hive 跟hbase的区别

共同点都是用hadoop作为底层存储

区别:hive是为了减少mrjobs编写工作的批处理系统,处理速度慢。hive本身不存储数据和计算数据,依赖于hadoop,纯逻辑表

hbase是为了hadoop对实时操作的缺陷的项目,处理速度快,是物理表,提供一个超大的内存hash表,方便查询操作

如果全表扫描用 hive+hadoop

如果用索引查询与hbase+hadoop

是处理数据库文件还是读取文本文件

先读取文本文件进行清洗,然后放入hdfs,进行处理

或者直接读取MySQL中格式化数据

6、请列出正常工作的hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么?

NameNode: HDFS的守护进程,负责记录文件是如何分割成数据块,以及这些数据块分别被存储到那些数据节点上,它的主要功能是对内存及IO进行集中管理

Secondary NameNode:辅助后台程序,与NameNode进行通信,以便定期保存HDFS元数据的快照。

DataNode:负责把HDFS数据块读写到本地的文件系统。

JobTracker:负责分配task,并监控所有运行的task。

TaskTracker:负责执行具体的task,并与JobTracker进行交互。

7、KafkaUtils.createDstream 和 KafkaUtils.createDirectstream 区别

使用一个 receiver 接收器接收数据,接收到的数据将会保存到executor中,然后通过sparkStreaming 启动job来处理数据,默认不会丢失,可启动WAL日志,保存到hdfs上

spark.streaming.recever.writeAheadLog.enable=true 同时开启 StorageLevel.MeMORY_AND_DISK_SER_2

KafkaUtils.createDirectstream方式,他定期从Kafka的分区中查询偏移量,再根据偏移量范围在每个batch里面处理数据

优点:简化并行 高效 恰好一次被消费

hbase

8、Kafka与传统消息队列的区别

RabbitMQ吞吐量稍差Kafka,支持对消息可靠的传递,支持事务,不支持批量的操作,存储于内存或者磁盘

Kafka遵从一般的MQ结构,producer,broker,consumer,以consumer为中心,消费的消费信息保存在客户端consumer上,consumer根据消费的点,从broker批量pull数据;无消息确认机制

Kafka具有搞得吞吐量,内部采用消息的批量处理,数据的存储和获取是本地磁盘顺序批量操作,消息处理的效率高

Kafka 的broker支持主备模式

Kafka 负载均衡 Zookeeper方向

Kafka采用Zookeeper进行管理,可以注册topic到Zookeeper上,通过zoo的协调机制,生产者保存对应topic的broker消息,可以随机或者轮询发送到broker上;并且生产者可以基于予以定义指定分片,消息发送到broker的某分片上

9、Master文件是否提供了多个入口?

是的你可以拥有多个Master文件接口。

10、Spark的数据本地性有哪几种?

Spark中的数据本地性有三种:

1、 PROCESS_LOCAL是指读取缓存在本地节点的数据

2、 NODE_LOCAL是指读取本地节点硬盘数据

3、 ANY是指读取非本地节点数据

通常读取数据PROCESS_LOCAL>NODE_LOCAL>ANY,尽量使数据以PROCESS_LOCAL或NODE_LOCAL方式读取。其中PROCESS_LOCAL还和cache有关,如果RDD经常用的话将该RDD cache到内存中,注意,由于cache是lazy的,所以必须通过一个action的触发,才能真正的将该RDD cache到内存中。

1、过滤器有什么用途:

增强hbase查询数据的功能

减少服务端返回给客户端的数据量

reduce之后数据的输出量有多大(结合具体场景,比如pi)

Sca阶段的增强日志(1.5T—2T)

过滤性质的mr程序,输出比输入少

解析性质的mr程序,输出比输入多(找共同朋友)

2、RDD缓存

rdd.cache

rdd.persist

3、什么是spark

基于内存计算发数据分析引擎,提高在大数据环境下数处理的实时性,spark仅涉及数据计算

4、假如Namenode中没有数据会怎么样?

没有数据的Namenode就不能称之为Namenode,通常情况下,Namenode肯定会有数据。

5、假如一个分区的数据逐步错误怎么通过hivesql删除

alter table ptable drop partition(daytime=‘20140921’,city=‘bj’);全部删除,文件夹还在

6、storm怎么保障消息不丢失

nimbus 告诉 Zookeeper 调度接收数据 ,spout接收数据 ack响应,其他节点进程 在spout消费拉去数据,每个tuple发送个bolt进行处理,如果成功处理则发送ack消息给zookeeper,发送消息 tuple消费失败则标记为fail,Zookeeper根据偏移量从新发送数据直到消费为止

Kafka

7、解释下hbase实时查询原理

实时查询,可疑人物是从内存中查询,一般响应为1秒内。

Hbase机制是数据先写入到内存中,当数据达到一定量,再写入磁盘中,在内存中不进行数据的更新和合并操作,值增加数据,使得用户的写操作值进入内存中可以立即返回,保证了Hasee的高性能

8、RDD 是什么

弹性分布式数据集,是spark中最基本的数据抽象,可以存于内存中或者磁盘中,分布式存储可用于分布式计算

一个不可变,可分区,里面的数据可并行计算的集合

9、描述Hbase的rowkey的设计原则

1、 rowkey长度原则:设计为定长,如果rowkey过长,内存使用率降低,会降低检索效率

2、 rowkey散列原则:将rowkey的高位作为散列字段,有程序随机生成,这样将提高数据均衡分布在每个RegionServer上,以实现负载均衡。

如果没有散列字段,所有数据就会集中在一个RegionServer上,数据检索时负载会集中在个别RegionServer上,造成热点问题,降低效率

3、 rowkey唯一原则:必须在设计上保证唯一性,rowkey是按照字段顺序排序存储的,设计rowkey时,充分利用排序这个特点,将经常读取的数据存在一块,可能被访问的数据放在一起

10、Sqoop工作原理是什么?

hadoop生态圈上的数据传输工具。

可以将关系型数据库的数据导入非结构化的hdfs、hive或者bbase中,也可以将hdfs中的数据导出到关系型数据库或者文本文件中。

使用的是mr程序来执行任务,使用jdbc和关系型数据库进行交互。

import原理:通过指定的分隔符进行数据切分,将分片传入各个map中,在map任务中在每行数据进行写入处理没有reduce。

export原理:根据要操作的表名生成一个java类,并读取其元数据信息和分隔符对非结构化的数据进行匹配,多个map作业同时执行写入关系型数据库

大数据面试题更多70道

01、什么是DAG

02、为什么会产生RDD

03、如果在SSH中添加key,是否还需要设置密码?

04、Hadoop是否遵循UNIX模式?

05、请描述一下开发过程中如何对上面的程序进行性能分析,对性能分析进行优化的过程。

06、请简述mapreduce中的combine和partition的作用

07、Hadoop的shuffle过程

08、什么是Kafka?

09、Hbase的rowKey怎么创建比较好?列簇怎么创建比较好?

10、hadoop-metrics.properties文件的作用是?

11、如何知道消费者消费到哪一条消息了?

12、hbase和hive的区别

13、mapreduce作业,不让reduce输出,用什么代替reduce的功能。

14、hadoop-env.sh是用于做什么的?

15、是否可以自行搭建Hadoop集群?

16、介绍一下hbase

17、如何访问hbase中的行

18、hbase如何调优

19、hive内部表和外部表的区别

20、用mapreduce实现sql语 select count (x) from a group by b;

21、谈谈Zookeeper理解

22、请列举出曾经修改过的/etc/下面的文件,并说明修改要解决什么问题?

23、宕机分为HMaster宕机和HRegisoner宕机,如果是HRegisoner宕机,HMaster会将其所管理的region重新分布到其他活动的RegionServer上,由于数据和日志都持久在HDFS中,该操作不会导致数据丢失。所以数据的一致性和安全性是有保障的。

24、offset是每天消息的偏移量

25、hbase中表的特点

26、请写出以下的shell命令

27、简答说一下hadoop的map-reduce编程模型

28、MR程序运行的时候会有什么比较常见的问题?

29、hive能像关系型数据库那样建多个库吗?

30、请列出你所知道的hadoop调度器,并简要说明其工作方法

31、你认为用java , streaming , pipe方式开发map/reduce , 各有哪些优点

32、请列出正常的hadoop集群中hadoop都分别需要启动 哪些进程,他们的作用分别都是什么,请尽量列的详细一些。

33、hbase过滤器实现原则

34、查看所有的topic

35、insert into 和override write区别

36、Kafka的消息发送

37、Hive与关系型数据库的关系?

38、hive的内表和外表

39、请列出正常的hadoop集群中hadoop都分别需要启动 哪些进程,他们的作用分别都是什么,请尽量列的详细一些。

40、那些RDD 需要cache

41、过滤器有什么用途:

42、RDD缓存

43、什么是spark

44、假如Namenode中没有数据会怎么样?

45、假如一个分区的数据逐步错误怎么通过hivesql删除

46、storm怎么保障消息不丢失

47、解释下hbase实时查询原理

48、RDD 是什么

49、描述Hbase的rowkey的设计原则

50、Sqoop工作原理是什么?

51、datanode在什么情况下不会备份

52、请列出你所知道的hadoop调度器,并简要说明其工作方法?

53、Hadoop安装在什么目录下?

54、当你输入hadoopfsck 造成“connection refused java exception’”时,系统究竟发生了什么?

55、spark调优

56、RAM的溢出因子是?

57、hive sql知识点

58、为什么hive的分区

59、当前日志采样格式为

60、Namenode、Job tracker和task tracker的端口号是?

61、请用java实现非递归二分查询

62、是客户端还是Namenode决定输入的分片?

63、mapred.job.tracker命令的作用?

64、全分布模式又有什么注意点?

65、hive 跟hbase的区别

66、请列出正常工作的hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么?

67、KafkaUtils.createDstream 和 KafkaUtils.createDirectstream 区别

68、Kafka与传统消息队列的区别

69、Master文件是否提供了多个入口?

70、Spark的数据本地性有哪几种?

如果不背 大数据面试题的答案,肯定面试会挂!

这套 大数据面试题大全,希望对大家有帮助哈~

已经整理成7000多页,面试手册PDF版已经整理成7000多页,面试手册PDF版https://mp.weixin.qq.com/s/TMBjoux5tpcqmbEFR-pDrA

博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐