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

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


相关推荐

  • .9图片报错Execution failed for task ‘:app:mergeDebugResources’. > Crunching Cruncher scrollbar_thumb.9.p

    .9图片报错Execution failed for task ‘:app:mergeDebugResources’. > Crunching Cruncher scrollbar_thumb.9.p

    2021年9月30日
    42
  • 华为AAA认证详解

    华为AAA认证详解 AAA的基本构架 AAA通常采用“客户端—服务器”结构。这种结构既具有良好的可扩展性,又便于集中管理用户信息。如图1所示。 图1AAA的基本构架示意图  认证    不认证:对用户非常信任,不对其进行合法检查,一般情况下不采用这种方式。    本地认证:将用户信息配置在网络接入服务器上。本地认证的优点是速度快,可以为运营降低成本,缺点是存储信息量受设备硬件条…

    2022年6月7日
    87
  • 巧用 PHP 数组函数

    巧用 PHP 数组函数

    2021年10月26日
    33
  • 学习opencv之cvtColor

    opencv提供了cvtColor()函数,用于在图像中不同的色彩空间进行转换,用于后续处理。在使用cvtColor之前首先需要了解下基本的图像色彩模式,色彩模式决定了打印或显示的图片颜色。图像色彩模式位图模式位图模式是图像中最基本的格式,图像只有黑色和白色像素,是色彩模式中占有空间最小的,同样也叫做黑白图,它包含的信息量最少,无法包含图像中的细节,相当于只有0或者1一副彩色图如…

    2022年4月18日
    39
  • java语言的特性有什么

    java语言的特性有什么1.java语言是简单的java语言是和c++语言类似的,其次java中丢弃了c++中一些难理解的特性,比如运算符重载等,java语言不使用指针,并且拥有垃圾回收机制2.java语言是面向对象的java语言提供了类、接口和继承等特性,只支持类之间的单继承,但是支持接口之间的多继承,并且支持类与接口之间的实现机制,而且java是全面支持动态绑定的。3.java语言是分布式的jav…

    2022年7月7日
    22
  • LaTeX详细安装步骤和简明教程

    LaTeX详细安装步骤和简明教程第一步:环境配置配置TeXLive和TeXstudio。TeXLive是编译器为Latex提供运行所需的环境;TeXstudio编辑器,提供操作界面,需要先安装好TeXLive之后,TeXstudio才能使用。TeXLive下载:TeXLive下载地址:(清华镜像)https://mirrors.tuna.tsinghua.edu.cn/ctan/systems/texlive/Images/下载“.iso”文件–>“texlive2020.iso3.7GiB…

    2022年5月18日
    55

发表回复

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

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