1. Hadoop 和 Spark的区别说一下?                Hadoop的数据处理单位是block,Spark 提供了可供并行处理的数据抽象RDD             Hadoop 对数据处理只提供了Map和Reduce 两种操作。Spark 提供了两大类算子transformation 和 action,支持的操作更多。             Hadoop 只支持Map->Reduce 的流程。Spark 则依赖DAG 有向无环图的方式来执行Job。速度更快。             Spark 提供了Hadoop 所不支持的cache 和 checkpoint 机制。大大的提高了计算速度和程序可靠性。             Spark 会对Job 划分Stage。同一个Stage 内的task 可以用流水线机制执行,大大提高了速度。             Shuffle 机制:Hadoop 的MapReduce 不支持在线聚合。Spark 采用了类HashMap的结构(三种数据结构)实现了自动聚合功能。Spark 在对Record进行排序的时候可以通过PartitionId 和 key进行排序的方式,Hadoop 只能通过key进行排序              2. 说一下你对RDD 的理解?                RDD是针对数据的分布式数据集,在RDD上的操作会在所有节点统一进行。RDD对它内部的元素具有容错机制。              3. Map 是类似于桶数组的形式,类比说一下RDD 的内部结构你觉得是怎么样的?                RDD 就像一个分布式数组,每个子part 含有相同类型的元素,但是元素可以分布在不同的机器上。              4. 说一下Spark 中 DAG 是如何形成的?                DAG 是有向无环图,其实就是RDD执行的流程。原始的RDD通过一系列的转换操作就形成了DAG有向无环图,任务执行时(执行Action算子时),可以按照DAG的描述,执行真正的计算(数据被操作的一个过程)。一个Spark应用中可以有一到多个DAG,取决于触发了多少次Action。             Spark会根据shuffle/宽依赖使用回溯算法来对DAG进行Stage划分,从后往前,遇到宽依赖就断开,遇到窄依赖就把当前的RDD加入到当前的stage/阶段中。              5. 说一下Spark 持久化机制/缓存机制?                Spark 的缓存机制是一种空间换时间的方法。使用场景为:数据会被多次重复使用。数据量较小可以放在内存空间的情况下可以对RDD 进行缓存。             Spark提供了不同的缓存级别。因为ci'pan              6. 说一下Spark 的checkpoint 机制?                Checkpoint 是Spark 提供的容错机制。适用场景为:应对job 执行失败的情况,应对软硬件故障造成的数据丢失问题。具体的过程是Spark 将RDD 持久化到了分布式文件系统上。             Checkpoint 会切断lineage 血缘关系。既然RDD 都被持久化到HDFS上了,该RDD 不需要通过重新计算再次得到,也就没有必要保存其lineage 了。              7. Spark 持久化机制和checkpoint 机制你觉得区别在哪里?                目的不同:cache 是为了加速计算,也就是加速后续的job。checkpoint 则是为了在job 运行失败的时候能够快速恢复!             存储位置不同:cache 主要使用内存,偶尔使用磁盘存储。checkpoint 为了可靠读写主要采用HDFS 作为存储空间             对lineage 影响不同:cache 对lineage无影响。缓存的RDD 丢失后可以通过lineage 重新计算。如果对RDD 进行 checkpoint,HDFS 因为是可靠存储哎,所以不需要再保存lineage了             应用场景不同:cache 机制适用于会被多次读取,占用空间不是特别大的RDD。checkpoint 机制则是适用于数据依赖关系特别复杂,重新计算代价高的RDD,比如某RDD关联的数据过多、计算链过长、被多次重复使用。                           8. 说一下Spark 架构。由哪几个部分构成?                Master 节点、Worker 节点、Executor 执行器、Task 计算任务             Master 节点上常驻Master 进程,该进程负责管理所有的Worker 节点。(分配任务、收集运行信息、监控worker的存活状态)             Worker 节点常驻Worker进程,该进程与Master 节点通信,还管理Spark 任务的执行。(启动Executor,监控任务运行状态)             Executor 执行器。Executor 是一个JVM 进程,是Spark 计算资源的单位。可以运行多个计算任务。             Task Spark 应用会被拆分为多个计算任务,分配给Executor 执行。Task 以线程的方式运行在Executor 中。              9.Spark 和  Flink 和 Storm 的区别说一下?          10. Spark 如何让50台机器,每台运行一个task?                  
点赞 15
评论 2
全部评论

相关推荐

水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务