大数据开发工程师面试题以及答案整理(二)

大数据开发工程师面试题以及答案整理(二)Redis性能优化,单机增加CPU核数是否会提高性能1、根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。2、当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。3、如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。4、不要让你的Redis所在机…

大家好,又见面了,我是你们的朋友全栈君。

Redis性能优化,单机增加CPU核数是否会提高性能
1、根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。
2、当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。
3、如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。
4、不要让你的Redis所在机器物理内存使用超过实际内存总量的3/5。
我们知道Redis是用”单线程-多路复用io模型”来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也会下降。而单一线程也只能用到一个cpu核心,所以可以在同一个多核的服务器中,可以启动多个实例,组成master-master或者master-slave的形式,耗时的读命令可以完全在slave进行。

采集数据为什么选择kafka
采集层 主要可以使用Flume, Kafka两种技术。
Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API.
Kafka:Kafka是一个可持久化的分布式的消息队列。
Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题Topics。相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。所以,Cloudera 建议如果数据被多个系统消费的话,使用kafka;如果数据被设计给Hadoop使用,使用Flume。

项目中遇到什么难题,有没有数据丢失,怎么解决
难题就是数据丢失

rdd怎么划分stage
map,filtre为窄依赖, 
groupbykey为款依赖 
遇到一个宽依赖就分一个stage

RDD中reduceBykey与groupByKey的区别
reduceByKey:reduceByKey会在结果发送至reducer之前会对每个mapper在本地进行merge,有点类似于在MapReduce中的combiner。这样做的好处在于,在map端进行一次reduce之后,数据量会大幅度减小,从而减小传输,保证reduce端能够更快的进行结果计算。
groupByKey:groupByKey会对每一个RDD中的value值进行聚合形成一个序列(Iterator),此操作发生在reduce端,所以势必会将所有的数据通过网络进行传输,造成不必要的浪费。同时如果数据量十分大,可能还会造成OutOfMemoryError。

kafka 重启是否会导致数据丢失
不会 因为kafka会做持久化

spark streaming  重启是否会导致数据丢失
博客:Spark Streaming和Kafka整合是如何保证数据零丢失 中有详细的讲解

讲一讲checkpoint
checkpoint的意思就是建立检查点,类似于快照,例如在spark计算里面 计算流程DAG特别长,服务器需要将整个DAG计算完成得出结果,但是如果在这很长的计算流程中突然中间算出的数据丢失了,spark又会根据RDD的依赖关系从头到尾计算一遍,这样子就很费性能,当然我们可以将中间的计算结果通过cache或者persist放到内存或者磁盘中,但是这样也不能保证数据完全不会丢失,存储的这个内存出问题了或者磁盘坏了,也会导致spark从头再根据RDD计算一遍,所以就有了checkpoint,其中checkpoint的作用就是将DAG中比较重要的中间数据做一个检查点将结果存储到一个高可用的地方(通常这个地方就是HDFS里面)

spark 怎么进行分区的

spark 计算流程
mapreduce 计算流程
hibernate与mybatis的区别
spark streaming 的优缺点
spring mvc  过程

——————— 
作者:godblesspl 
来源:CSDN 
原文:https://blog.csdn.net/godblesspl/article/details/79417948 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138725.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月30日 下午10:36
下一篇 2022年5月30日 下午10:36


相关推荐

  • Vue分页导航_vue分页组件

    Vue分页导航_vue分页组件Vue分页导航原文链接:https://www.cnblogs.com/vivaxiaonan/p/9987985.html这里我用的是脚手架,粘Viva_nan大佬的代码封装了一个.vue组件。实现效果如下:封装组件newCom.vue代码:<template><divclass=”wrapper”><navclass=”zpagenav”><ulclass=”page-ul”>…

    2026年4月17日
    4
  • 将自己的域名重定向到某网站

    将自己的域名重定向到某网站昨天突然发现自己指向 CSDN GitHub 的二级域名均无法访问了 后来才发现是因为自己的 cn 域名没有备案 先前以为实名认证就足够了 晕 域名备案大约需要 20 天左右 意味着这短时间我的二级域名无法访问了 这可绝对不行啊 今儿捣鼓了一上午总算搞定了 如何将自己的域名 一级或二级等 无需备案 重定向到其他网站呢 所需资源 有公网 IP 的服务器 域名 zxiaofan cn 操作步骤

    2026年3月18日
    2
  • .net2.0线程使用参数

    .net2.0线程使用参数

    2021年7月25日
    64
  • vdbench配置说明[通俗易懂]

    vdbench配置说明[通俗易懂]一、前言1、介绍 vdbench是一个I/O工作负载生成器,通常用于验证数据完整性和度量直接附加(或网络连接)存储性能。它可以运行在windows、linux环境,可用于测试文件系统或块设备基准性能。2、版本包获取vdbench版本包下载链接:http://download.oracle.com/otn/utilities_drivers/vdbench/vdbench50406.zipjdk版本包下载链接(windows):https://download.oracle.com/

    2022年5月19日
    86
  • SSM-Mybatis(4)「建议收藏」

    SSM-Mybatis(4)「建议收藏」缓存什么是缓存[Cache]存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据的时候就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存减少和数据库的数据交换次数,较少系统开销,提高系统效率什么样的数据库能使用缓存经常查询并且不经常改变的数据Mybatis缓存MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。默认情况下,只启用了本地的会话缓存,它仅

    2022年8月9日
    9
  • android原版开机动画,修改android开机动画

    android原版开机动画,修改android开机动画Thestatupanimationmeanstheoneyouseebeforethelauncherapplicationcomesout.Itwasalinewitharedpointgoesfromlefttorightagainandagainbefore,inAndroid1.0.Currently,oncupcak…

    2022年5月15日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号