最近学习了spark大数据技术,这里开始分享本阶段的学习心得。作为个人的【spark】系列,包含了spark的《简介》,《RDD》,《DataFrame》,《GraphFrame》等板块。下面进入第一个板块——《简介》。部分内容整理自辛立伟老师处
spark是什么?
spark是一个用于大规模数据处理的统一分析引擎、它基于hadoop mapreduce 并扩展了mapreduce模型,能用于覆盖范围广泛的工作负载,有效的用于交互式查询、流处理等更多类型的计算,它能将计算划分到内存执行,大大提升了程序的处理速度。
Spark是开源的,其社区也是大数据中最活跃的,有近50多家公司在做贡献,未来的主流方向趋于流处理和深度学习。它具有特性:
1.运行速度快,使用DAG执行引擎以支持循环数据流与内存计算;
2.容易使用,支持使用Scala、 Java、 Python和R语言进行编程, 可以通过Spark Shell进行交互式编程;
3.通用性,Spark提供了完整而强大的技术栈, 包括SQL查询、 流式计算、 机器学习和图算法组件;
4.可运行于独立的集群模式中,可运行在Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、 HBase、 Hive等多种数据源。
Spark组件
Spark Core
• Spark Core是Spark平台底层通用执行引擎, 所有其他功能都建立在它之上
• Spark Core提供了内存中的计算和对外部存储系统中数据集的引用
• Spark Core中提供了抽象的数据结构RDD
Spark SQL
• Spark SQL位于Spark Core之上的一个组件
• 它引入了新的数据抽象: DataFrame和DataSet
Spark Streaming
• Spark流利用Spark Core的快速调度功能来执行流分析
• 它以小批量的方式来处理数据, 并在这些小批量数据上执行RDD转换
MLlib (Machine Learning Library)
• MLlib是在Spark之上的分布式机器学习框架.
GraphX
• GraphX是在Spark之上的分布式图处理框架, 它提供了一个用于表达图计算的API, 可以使用Pregel抽象API对用户定义的图进行建模
• 它还为这种抽象提供了一个优化的运行时
Spark启动模式
Spark 基于yarn的模式:
Spark Hadoop和Spark的统一部署:
Spark交互方式
spark的交互方式有很多种:
Spark VS MapReduce
spark与传统MapReduce的比较。
–基本原理
• MapReduce是基于磁盘的大数据批量处理框架。
• Spark是基于内存的大数据综合处理框架。
–应用场景
• MapReduce可以处理超大规模数据 , 适用于处理具有较少迭代
次数的长任务。
• Spark适用于处理具有较多迭代次数的任务。
–容错性
• MapReduce的数据主要来源于HDFS。 具有完善的容错机制。
• Spark 的容错性都是基于RDD实现的 。
小结
通过上面文章的介绍,我们知道:
1.spark是一个大规模数据处理的统一分析引擎;
2.spark能够运行在本地单机模式、spark自带的简单资源管理的集群、其他资源管理的集群下。
3.spark的交互方式可以是命令行、.jar包、第三方工具。
4.spark本质是MapReduce模型的扩展。