1 概述
RDD 是一个可以容错且并行的数据结构(其实可以理解成分布式的集合,操作起来和操作本地集合一样简单),它可以让用户显式的将中间结果数据集保存在内存中,并且通过控制数据集的分区来达到数据存放处理最优化.同时 RDD也提供了丰富的 API (map、reduce、foreach、group。。。。)来操作数据集.后来 RDD被 AMPLab 在一个叫做 Spark 的框架中提供并开源. RDD的中间数据在内存中,运行数据块;操作数据的API丰富,开发速度快
spark :Apache Spark是用于大规模数据处理的统一分析引擎
Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。
尽管Spark相对于Hadoop而言具有较大优势,但Spark并不能完全替代Hadoop,不像 Hadoop 一样包含了分布式文件系统和完备的调度系统,Spark主要用于替代Hadoop中的MapReduce计算模型。存储依然可以使用HDFS,但是中间结果可以存放在内存中,调度可以使用内置,也可以使用更成熟的调度系统YARN等
实际上,Spark已经很好地融入了Hadoop生态圈,并成为其中的重要一员,它可以借助于YARN实现资源调度管理,借助于HDFS实现分布式存储。
特点:1 易用
Spark支持Java、Python、R和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。
2 通用
Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用
3 兼容性
Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark
spark 运行模式
1.local本地模式(单机)—>常用于本地开发测试
分为local单线程和local-cluster多线程
2.standalone独立集群模式—>偶尔于本地开发测试
典型的Mater/slave模式
3.standalone-HA高可用模式—>开发时生产环境可以使用
基于standalone模式,使用zk搭建高可用,避免Master是有单点故障的
4.on yarn集群模式—>开发时生产环境可以使用
运行在 yarn 集群之上,由 yarn 负责资源管理,Spark 负责任务调度和计算,
好处:计算资源按需伸缩,集群利用率高,共享底层存储,避免数据跨集群迁移。
Spark的交互方式:
spark -shell
spark-submit
spark的执行流程:
1.当我们使用spark-shell或spark-submit提交 spark 任务的时候(提交任务的节点称为 Dirver)会生成了一个 Applications,并向master发送任务请求
2.master在接收到请求之后,会根据客户端需要的任务资源(默认会占用所有 Worker 的 cores,每个占用1g内存),选择出合适的Worker节点
3.然后向worker发送任务指令,worker接收到任务之后,会启动一个executor进程
4.executor启动后,会等待分配计算任务,然后executor会向driver通信
5.当有driver任务要执行时,任务就会分发到executor上, 然后并行执行
大数据的重要框架 spark
最新推荐文章于 2024-05-13 18:59:02 发布