一、Spark它主要包含以下几个方面:
Spark Core – 用于通用分布式数据处理的引擎它不依赖于任何其他组件,可以运行在任何商用服务器集群上
Spark Sql – 运行在Spark上的SQL查询语句,支持一系列SQL函数和HiveQL但是还不是很成熟,所以不要在生产系统中使用;而HiveQL集成了需要的hive元数据和Hive相关的jar包
Spark Streaming – 基于spark的微批处理引擎,支持各种各样数據源的导入唯一依赖的是Spark Core引擎。
MLib – 构建在spark之上的机器学习库支持一系列数据挖掘算法。
spark和hadoop哪个好 HDFS:一个高可靠、高吞吐量的分布式文件系统
spark和hadoop哪个好 YARN:作业调度与集群资源管理的框架。
三、spark和hadoop哪个好的优势与不足
高可靠性:因为 spark和hadoop哪个好 假设计算元素和存储会出现故障因为它维护多个工作数据副
本,在出现故障时可以对失败的节点重新分布处理
高扩展性:在集群间分配任务数据,可方便的扩展数鉯千计的节点
高效性:在 MapReduce 的思想下,spark和hadoop哪个好 是并行工作的以加快任务处理速度。
高容错性:自动保存多份副本数据并且能够自动將失败的任务重新分配。
1.只提供两个操作Map和Reduce,表达力欠缺
2.一个Job只有Map和Reduce两个阶段,复杂的计算需要大量的Job完成Job之间的依赖关系是由开發者自己管理的。
3.中间结果也放在HDFS文件系统中
4.ReduceTask需要等待所有MapTask都完成后才可以开始延时高只适用Batch数据处理,对于交互式数据处理实时数據处理的支持不够 。
四、Spark 是在借鉴了 MapReduce 之上发展而来的继承了其分布式并行计算的优点并改进了 MapReduce 明显的缺陷;
首先,Spark 把中间数据放到内存Φ迭代运算效率高。MapReduce 中计算结果需要落地保存到磁盘上,这样势必会影响整体速度而 Spark 支持 DAG 图的分布式并行计算的编程框架,减少了迭代过程中数据的落地提高了处理效率。(延迟加载)
其次Spark 容错性高。Spark 引进了弹性分布式数据集 RDD (Resilient DistributedDataset) 的抽象它是分布在一组节点中的只讀对象集合,这些集合是弹性的如果数据集一部分丢失,则可以根据“血统”(即允许基于数据衍生过程)对它们进行重建另外在RDD 计算时可以通过 CheckPoint 来实现容错。