副标题[/!--empirenews.page--]
1 简介
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。它产生于 UC Berkeley AMP Lab,继承了 MapReduce 的优点,但是不同于 MapReduce 的是,Spark 可以将结果保存在内存中,一直迭代计算下去,除非遇到 shuffle 。因此 Spark 能更好的适用于数据挖掘与机器学习等要迭代的算法。值得注意的是,官网说的 Spark 是 MR 计算速度的 100 倍。仅仅适用于逻辑回归等这样的迭代计算。
2 Spark 的运行模式
- Local 模式:多用于本机编写、测试代码。
- Standalone 模式:这是 Spark 自带的资源调度框架,它支持完全分布式。
- Yarn 模式:这是 hadoop 里面的一个资源调度框架,Spark 同样也可以使用。
- Mesos 模式:为应用程序(如Hadoop、Spark、Kafka、ElasticSearch)提供API的整个数据中心和云环境中的资源管理和调度。
下面分别介绍一下 Standalone 和 Yarn 模式下任务流程。
Standalone-client 提交方式
提交命令如下:以官方给的计算 PI 的代码为例。
- ./spark-submit
- --master spark://node1:7077
- --class org.apache.spark.example.SaprkPi
- ../lib/spark-examples-1.6.0-hadoop2.6.0.jar
- 1000
执行流程图以及原理:
Standalone-cluster 提交方式
提交命令如下:以官方给的计算 PI 的代码为例。
- ./spark-submit
- --master spark://node1:7077
- --deploy-mode cluster
- --class org.apache.spark.example.SaprkPi
- ../lib/spark-examples-1.6.0-hadoop2.6.0.jar
- 1000
执行流程图以及原理:
Yarn-cluster 提交方式
提交命令如下:以官方给的计算 PI 的代码为例。
- ./spark-submit
- --master yarn
- --deploy-mode client
- --class org.apache.spark.example.SaprkPi
- ../lib/spark-examples-1.6.0-hadoop2.6.0.jar
- 1000
执行流程图以及原理:
Yarn-cluster 提交方式
提交命令如下:以官方给的计算 PI 的代码为例。
- ./spark-submit
- --master yarn
- --deploy-mode cluster
- --class org.apache.spark.example.SaprkPi
- ../lib/spark-examples-1.6.0-hadoop2.6.0.jar
- 1000
执行流程图以及原理:
3 RDD
Spark core 最核心的就是 Resilient Distributed Dataset (RDD) 了,RDD 比较抽象了。源码中 RDD.scala 中对 RDD 进行了一段描述。最主要的是下面的五个方面;
- /**
- * Internally, each RDD is characterized by five main properties:
- *
- * - A list of partitions
- * - A function for computing each split
- * - A list of dependencies on other RDDs
- * - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
- * - Optionally, a list of preferred locations to compute each split on (e.g. block locations for
- * an HDFS file)
- *
- * All of the scheduling and execution in Spark is done based on these methods, allowing each RDD
- * to implement its own way of computing itself. Indeed, users can implement custom RDDs (e.g. for
- * reading data from a new storage system) by overriding these functions.
- */
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|