Spark基础知识

Spark

Spark是一个可应用于大规模数据处理的快速、通用引擎,提供了内存计算和基于DAG的任务调度执行机制,减少了迭代计算时的I/O开销;Spark的设计遵循“一个软件栈满足不同应用场景”的理念,形成了一套完整的生态系统,既能够提供内存计算框架,也可以支持SQL即席查询(Spark SQL)、流计算(Spark Streaming)、机器学习(MLlib)和图计算(GraphX)等。Spark可以部署在资源管理器YARN上,提供一站式的大数据解决方案。
Spark基础知识_第1张图片

Spark主要具有的特点:

		1. Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活;
		2. Spark提供了内存计算,job产生的中间结果直接存放在内存中,带来了更高的迭代执行机制;
		3. Spark基于DAG的任务调度执行机制,要优于MapReduce的迭代执行机制。

综上所述: Spark更适合于迭代运算比较多的数据挖掘和机器学习运算。

Spark作为一个更加快速、高效的大数据计算平台,其具有的主要特点:

		1. 运行速度快。Spark使用先进的有向无环图(DAG)执行引擎,以支持循环数据流与内存计算,基于内存计算的执行速度可比Hadoop MapReduce快上百倍,基于磁盘的执行速度也能快十倍;
		2. 容易使用:Spark支持使用Scala、Java、Python和R语言进行编程,简洁的API设计有助于用户轻松构建并行程序,并且可以通过Spark Shell进行交互式编程;
		3. 通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件,这些组件可以无缝组合到同一个应用中,足以应对复杂的计算;
		4. 运行模式多样:Spark可运行于独立的集群模式中,或者运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源。

Spark提供了多种高层次的、简洁的API(应用程序编程接口),提供了实时交互编程反馈,可以方便的验证、调整算法;提供了一个称为Spark R的编程接口,是一般应用领域的数据分析人员,可以在R语言环境中方便地使用Spark的并行化编程接口和强大计算能力。

YARN可以带来的好处:
1. 计算资源按需伸缩;
2. 不同负载应用混搭,集群利用率高;
3. 共享底层存储,避免数据跨集迁移。
Spark基础知识_第2张图片
Spark的部署模式:
1. Local模式(单机模式)
2. Standalone模式(使用Spark自带的简单集群管理器)
3. YARN模式(使用YARN作为集群管理器)
4. Mesos模式(使用Mesos作为集群管理器)

大数据计算模式及其代表产品

批处理计算主要用于对大规模数据的批量处理。具有代表性的批处理框架包括MapReduce、Spark等;
流计算主要用于对来自不同数据源的、连续到达的流数据进行实时分析处理,并给出有价值的分析结果,典型的流计算框架包括Twitter Storm、Yahoo!S4等;
查询分析计算是企业中常见的应用场景,主要面向大规模数据的存储管理和查询分析,用户一般只需要输入查询语句(如SQL),就可以快速的得到相关的查询结构。典型的查询分析计算框架包括Dremel,Hive,Cassandra,Impala等。

延伸技术:

Flink是一个针对流数据和批数据的分布式计算框架,设计思想主要来源于Hadoop,MPP数据库、流计算系统等,Flink主要是由Java代码实现的,所处理的主要场景是流数据。
Flink的典型特征:
1.提供了面向流处理的DataStream API和面向批处理的DataSet API。DataSet API支持Java、Scala和Python,DataStream API支持Java和Scala;
2. 提供了多种候选部署方案,如本地模式(Local)、集群模式(Cluster)和云模式(Cloud)。对于集群模式而言,可以采用独立模式(Standalone)或者YARN;
3. 提供了一些类库,包括Table(处理逻辑表查询),FlinkML(机器学习)、Gelly(图像处理)和CEP(复杂事件处理);
4. 提供了较好的Hadoop兼容性,不仅可以支持YARN,还可以支持HDFS、HBase等数据源。
Flink和Spark一样,都是基于内存的计算框架,可以获得较好的实时计算性能。当全部运行在Hadoop YARN上,Flink的性能甚至要略好于Spark,这是因为Flink支持增量迭代,具有对迭代进行自动优化的功能。
Spark基础知识_第3张图片

你可能感兴趣的:(hadoop,hadoop,spark,flink)