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

大数据开发工程师面试题以及答案整理(二)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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle19c安装教程及PLSQL配置常见错误解决办法

    Oracle19c安装教程及PLSQL配置常见错误解决办法本人电脑上也装了不少比较难以安装的程序,而且也亲身破解了一些软件,自己以前也安装过MySQL和DB2,原以为Oracle也差不多,直到我亲身经历了,我才知道什么是痛苦。帅帅本人在经历了长时间的折磨之后终于把Oracle安装完毕,可谓被折磨得一塌糊涂,暗无天日。或许这也是程序员的快乐之一吧(ง•_•)ง目录&下面是Oracle的一些安装步骤及安装过程中常见错误的修正…

    2022年5月20日
    478
  • openssl升级后ssh登录失败(无尽升级)

    OpenSSL升级3.0.0openssl官方下载地址:https://www.openssl.org/source/1.编译tarxfopenssl-3.0.0.tar.gzcdopenssl-3.0.0./config–prefix=/usr/local–openssldir=/usr/local/opensslmake&&makeinstall2.1备份原来的opensslmv/usr/bin/openssl/usr/bin/openssl

    2022年4月13日
    427
  • 【SpringBoot】25、SpringBoot中使用Quartz管理定时任务

    【SpringBoot】25、SpringBoot中使用Quartz管理定时任务定时任务在系统中用到的地方很多,例如每晚凌晨的数据备份,每小时获取第三方平台的Token信息等等,之前我们都是在项目中规定这个定时任务什么时候启动,到时间了便会自己启动,那么我们想要停止这个定时任务的时候,就需要去改动代码,还得启停服务器,这是非常不友好的事情直至遇见Quartz,利用图形界面可视化管理定时任务,使得我们对定时任务的管理更加方便,快捷一、Quartz简介Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲

    2025年8月20日
    3
  • Python爬取淘宝商品信息

    Python爬取淘宝商品信息各位同学们 好久没写原创技术文章了 最近有些忙 所以进度很慢 警告 本教程仅用作学习交流 请勿用作商业盈利 违者后果自负 如本文有侵犯任何组织集团公司的隐私或利益 请告知联系猪哥删除 一 淘宝登录复习前面我们已经介绍过了如何使用 requests 库登录淘宝 收到了很多同学的反馈和提问 猪哥感到很欣慰 同时对那些没有及时回复的同学说声抱歉 顺便再提一下这个登录功能 代码是完全没有问题

    2025年7月27日
    7
  • 分享pycharm如何安装插件(Plugins)

    分享pycharm如何安装插件(Plugins)链接:https://plugins.jetbrains.com/pycharm一、把插件的zip文件下载到本地二、File=>settings=>plugins本来可以像vscode一样直接搜直接安装,但是它一直转不出来,所以我先去上面的官网下载插件到本地再安装三、点开updates后面的小齿轮,选择installpluginfromdisk(从硬盘下载),选择刚刚下…

    2022年8月25日
    14
  • 八核版9500odin3线刷通刷以及root教程

    八核版9500odin3线刷通刷以及root教程1.先准备好odin3最新版或者汉化版以及通刷包(教程最后提供下载朱雀www.zhuquewl.com)2.跟着我的步骤走,除非你RP不佳,反正我刷机成功了3.教程音量减键+HOME键+开机键出现如下画面:  4.出现如上画面按下音量加键   5.电脑上打开odin3选择你的固件,我放在桌面上(文件放哪随便了),连上手机,端口号能读出[0:COM11],读不出重新连接

    2022年7月21日
    18

发表回复

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

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