Spark 概述

来源:互联网 发布:php网站开发 编辑:程序博客网 时间:2024/05/20 15:40

Spark 概述 【原文 Spark overview】

Apache Spark 是一个快速、通用的集群计算系统。除了为Java、Scala、Python与R用户提供了高级编程接口,Spark还提供了支持通用执行图的优化引擎。作为计算引擎,Spark 提供了一系列高级工具,应对各类场景:

  • Spark SQL : SQL与结构化数据处理
  • MLlib : 机器学习
  • GrapX : 图计算
  • Spark Streaming : 实时计算

环境准备

兼容性

Spark 2.2.0 支持 Java8+,Python2.7+/3.4+,Scala2.11+,Hadoop 2.6.5+

:不推荐在 spark2.1.0+版本上使用scala2.10-虽然可行;spark2.3.0可能会不支持scala 2.10

下 载

地 址:downloads page
获取spark的几种方式:

  • Pre-built for Apache Hadoop 2.6+ 版
  • 源码自行构建

说 明:
1) 为了方便与hdfs、yarn的交互,Spark预打包了2.6+版Hadoop的客户端库 - 当然,你也可通过[增加Spark类路径]。(http://spark.apache.org/docs/latest/hadoop-provided.html)来下载兼容任何Hadoop版本的二进制Spark文件。
2)Scala与Java用户可在Maven中引入Spark相关包;Python用户,可通过PyPI安装Spark。
3)可在window与类UNIX系统(e.g.Linux,Mac OS等)上运行。 在本地环境以单机模式运行Spark非常简单:保证 java -version 命令可在控制台正常执行。

小实验

Spark自带一些简单的Scala、Java、Python与R版小程序,详见 /src/main下相关子目录。这里以 SparkPi (就是计算 π 的值啦)为例,加以说明如何启动spark应用程序:
1 ) scala 用户

./bin/run-example SparkPi 10

执行环境与结果:

这里写图片描述

这里写图片描述

说明 :A) run-example程序内部调用了 spark-submit 脚本执行的。

./bin/spark-shell --master local[2] //本地单机模式,双线程运行

B) standalone 模式执行:./bin/spark-shell --master spark://ip:port;yarn 模式执行:./bin/spark-shell --master yarn

2 ) python 用户:

./bin/spark-submit examples/src/main/python/pi.py 10
./bin/pyspark --master local[2]

部署模式

Spark可独立或者混合部署,目前支持三种集群部署模式:
- Standalone Deploy Mode
- Apache Mesos
- Hadoop YARN
更详细的部署说明,详见 cluster mode 概述