美文网首页
一些需要补充的点

一些需要补充的点

作者: 博弈史密斯 | 来源:发表于2018-09-18 21:43 被阅读0次

如何从Kafka中获取数据?

  1. 基于Receiver的方式

这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来实现的。receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming启动的job会去处理那些数据。

  1. 基于Direct的方式

这种新的不基于Receiver的直接方式,是在Spark 1.3中引入的,从而能够确保更加健壮的机制。替代掉使用Receiver来接收数据后,这种方式会周期性地查询Kafka,来获得每个topic+partition的最新的offset,从而定义每个batch的offset的范围。当处理数据的job启动时,就会使用Kafka的简单consumer api来获取Kafka指定offset范围的数据

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

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

a.PROCESS_LOCAL 是指读取缓存在本地节点的数据

b.NODE_LOCAL 是指读取本地节点硬盘数据

c.ANY 是指读取非本地节点数据

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

介绍一下join操作优化经验?

(可以参考 Spark 性能优化,里边有提到,具体在我的文章中可以找到)
答:join其实常见的就分为两类: map-side join 和 reduce-side join。当大表和小表join时,用map-side join能显著提高效率。将多份数据进行关联是数据处理过程中非常普遍的用法,不过在分布式计算系统中,这个问题往往会变的非常麻烦,因为框架提供的 join 操作一般会将所有数据根据 key 发送到所有的 reduce 分区中去,也就是 shuffle 的过程。造成大量的网络以及磁盘IO消耗,运行效率极其低下,这个过程一般被称为 reduce-side-join。如果其中有张表较小的话,我们则可以自己实现在 map 端实现数据关联,跳过大量数据进行 shuffle 的过程,运行时间得到大量缩短,根据不同数据可能会有几倍到数十倍的性能提升。

备注:这个题目面试中非常非常大概率见到,务必搜索相关资料掌握,这里抛砖引玉。

29.介绍一下cogroup rdd实现原理,你在什么场景下用过这个rdd?

答:cogroup 的函数实现: 这个实现是对要进行合并的两个 RDD 进行操作, 生成一个CoGroupedRDD 的实例

是把相同的 key 中两个 RDD 分别进行合并操作, 最后返回的 RDD 的 value 是一个 Pair 的实例,这个实例包含两个 Iterable 的值,第一个值表示的是 RDD1 中相同 KEY 的值, 第二个值表示的是 RDD2 中相同 key的值.

由于做 cogroup 的操作,需要通过 partitioner 进行重新分区的操作,因此,执行这个流程时,需要执行一次 shuffle 的操作(如果要进行合并的两个 RDD 的都已经是 shuffle 后的 rdd, 同时他们对应的partitioner 相同时,就不需要执行 shuffle,),

场景:表关联查询

相关文章

  • 一些需要补充的点

    如何从Kafka中获取数据? 基于Receiver的方式 这种方式使用Receiver来获取数据。Receiver...

  • 需要补充的知识点

    Dagger2深入,Rxjava

  • 需要补充的

    2016.8.15 排序不分先后, 想到什么写什么。 1.cocoapods 简化第三方安装、更新的问题,可以自动...

  • 基于netty+websocket的客服聊天IM系统

    该文基于开源项目分析,总结了IM相关的一些知识点,如何实现,以及针对客服业务需要补充的几个点。开源系统使用nett...

  • Flutter 98: 易忽略的【小而巧】的技术点汇总 (六)

    小菜继续补充日常学习中遇到的很实用的技术点; LayoutBuilder 小菜在一些场景下需要根据父类布局大小不同...

  • 等离子体科技知识寻求者第34次教学

    (20:30左右需要补充一段文字,其他的补充好了,补充的文字是蓝色的。明天早上重新发上) 可能要描述一些实验里面的...

  • 生活|需要有一些补充才好

    文/涅阳三水 母亲年纪大了,有些事需要瞒着她才行,要不然整日里为这点事絮叨叨个没完。 两年前,父亲住院借了表弟的钱...

  • Android开发(java基础)ArrayList、Linke

    之前写了篇性能相关的文章:Android开发: 关于性能需要考虑的,都是一些文字描述,纯理论文;现在补充点实际的,...

  • 藏人

    我经常有事没事进出厨房,有事是指有点饿意的时候,大脑有了一些新的信号需要处理,所以下意识认为自己需要补充点能量,煮...

  • [德语发音]——发音规则补充

    想了想好像没有很多需要补充的东西,大概翻了下书补充一些字母组合的发音规则吧。 1、之前提到过ie发音是【i:】,元...

网友评论

      本文标题:一些需要补充的点

      本文链接:https://www.haomeiwen.com/subject/rggwdftx.html