前言
大家好,我是ChinaManor,直译过来是中国码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。
时隔一年,终于把主流的大数据组件全部学完
了,学成之时,便是出师之日,
那为师便来考考你学的如何:
口诀:月尾煮散肠 又到了月尾业务达不到,唯一不挨饿的办法是煮超市散落的香肠吃。
自定义开发
一些功能集成到Hbase中Observer
:观察者类,类似于监听器的实现Endpoint
:终端者类,类似于存储过程的实现以上面试题出自之前发布的Hbase专栏 Hbase专栏链接
页缓存机制
顺序写磁盘
的机制零拷贝机制
以上面试题出自之前发布的Kafka专栏 Kafka专栏链接
1、任务提交后会和ResourceManager通讯申请启动ApplicationMaster 2、随后ResourceManager分配container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster就是Driver。 3、Driver启动后向ResourceManager申请Executor内存 4、ResourceManager接到ApplicationMaster的资源申请后会分配container,然后在合适的NodeManager上启动Executor进程 5、Executor进程启动后会向Driver反向注册 6、Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据宽依赖开始划分stage,每个stage生成对应的taskSet,之后将task分发到各个Executor上执行。
1、Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯申请启动ApplicationMaster 2、随后ResourceManager分配container,在合适的NodeManager上启动ApplicationMaster 3、此时的ApplicationMaster的功能相当于一个ExecutorLaucher,只负责向ResourceManager申请Executor内存 4、ResourceManager接到ApplicationMaster的资源申请后会分配container,ApplicationMaster在资源分配指定的NodeManager上启动Executor进程 5、Executor进程启动后会向Driver反向注册 6、Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据宽依赖开始划分stage,每个stage生成对应的taskSet,之后将task分发到各个Executor上执行。
1)关系:
两者都是用来改变RDD的partition数量的,repartition底层调用的就是coalesce方法
2)区别:
repartition一定会发生shuffle,coalesce根据传入的参数来判断是否发生shuffle
一般情况下增大rdd的partition数量使用repartition,减少partition数量时使用coalesce
cache和persist都是用于将一个RDD进行缓存的,这样在之后使用的过程中就不需要重新计算了,可以大大节省 程序运行时间
1) cache只有一个默认的缓存级别MEMORY_ONLY ,cache调用了persist,而persist可以根据情况设置其它的缓存级别;
2) executor执行的时候,默认60%做cache,40%做task操作,persist是最根本的函数,最底层的函数。
以上面试题出自之前发布的Spark专栏 Spark专栏链接
1、首先什么是Watermaker? Watermaker就是给数据再额外的加的一个时间列,也就是Watermaker是个时间戳! 2、其次如何计算Watermaker? Watermaker = 当前窗口的最大的事件时间 - 最大允许的延迟时间或乱序时间 3、窗口计算的触发条件为:
Checkpoint、State、Time、Window
固定延迟重启策略
失败率重启策略
回调重启策略
无重启策略
古诗会晤
固定的古诗会晤即将在沭阳举行
Flink Join大体分类只有两种:Window Join和Interval Join。
Tumbling Window Join、 Sliding Window Join、 Session Widnow Join
Windows类型的join都是利用window的机制,先将数据缓存在Window State中,当窗口触发计算时,执行join操作。
第一种yarn seesion(Start a long-running Flink cluster on YARN
)
这种方式需要先启动集群,然后在提交作业,接着会向yarn申请一块空间后,资源保持不变。
如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,那下一个作业才会正常提交.
比较适合特定的运行环境或者测试环境。
第二种Flink run直接在YARN上提交运行Flink作业(Run a Flink job on YARN
),
一个任务会对应一个job,即每提交一个作业会根据自身的情况,向yarn申请资源,直到作业执行完成,
并不会影响下一个作业的正常运行,除非是yarn上面没有任何资源的情况下。
一般生产环境是采用此种方式运行
以上面试题出自之前发布的Flink专栏 Flink专栏链接
以上便是大数据综合复习之面试题15问,你都掌握了吗?