人工智能AI面试题-2.10 Hadoop和Spark的都是并行计算,那么他们有
2.10 Hadoop和Spark的都是并行计算,那么他们有什么相同和区别 1. 相同 😄 - 两者都采用MapReduce模型进行并行计算。 - Hadoop的一个作业称为Job,Job里面分为Map Task和Reduce Task,每个Task都在自己的进程中运行。当Task结束时,进程也会结束。 2. 区别 🤔 - Hadoop的Job只有Map和Reduce操作,表达能力相对较弱,而且在MapReduce过程中会重复地读写HDFS,导致大量的IO操作。多个Job需要自己管理关系。 - Spark用户提交的任务称为Application,一个Application对应一个SparkContext。在一个Application中存在多个Job。每次触发一个Action操作都会产生一个Job。这些Job可以并行或串行执行。每个Job中有多个Stage,Stage是通过DAGScheduler根据RDD之间的依赖关系划分的。每个Stage里面有多个Task,组成Task Set由TaskScheduler分发到各个Executor中执行。Executor的生命周期与Application一样,即使没有Job运行也是存在的,所以Task可以快速启动并读取内存进行计算。 - Spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作,如join、groupBy等。而且通过DAG图可以实现良好的容错。 🚀 总结:Hadoop和Spark都是强大的并行计算工具,但Spark在内存计算、容错性和操作表达能力方面具有明显优势。它更适合处理迭代计算和复杂的数据操作。