大数据面试题及答案【最新版】大数据高级面试题大全(最新版),发现网上很多大数据面试题都没有答案,所以花了很长时间搜集,本套大数据面试题大全
最近由于要准备面试就开始提早看些面试、笔试题。以下是自己总结的一些经常出现、有价值的试题,包含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
强制关闭或非正常断电时
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 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中的数据导出到关系型数据库或者文