Spark是个好东西。
Spark有以下四种运行模式:
- local: 本地单进程模式,用于本地开发测试Spark代码
- standalone:分布式集群模式,Master-Worker架构,Master负责调度,Worker负责具体Task的执行
- on yarn/mesos: 运行在yarn/mesos等资源管理框架之上,yarn/mesos提供资源管理,spark提供计算调度,并可与其他计算框架(如MapReduce/MPI/Storm)共同运行在同一个集群之上
- on cloud(EC2): 运行在AWS的EC2之上
在Spark上又有多个应用,尤其是MLlib
,Spark SQL
和DataFrame
,提供给数据科学家们无缝接口去搞所谓Data Science
本文记录一下我在Mac上安装Spark单机为分布式的过程
1.安装环境
Spark依赖JDK 6.0以及Scala 2.9.3以上版本,安装好Java和Scala,然后配置好Java、Scala环境,最后再用java -version
和scala -version
验证一下
在~/.bash_profile
中加入:
1 | # Setting PATH for scala |
别忘了
1 | source ~/.bash_profile |
生效
由于在后面学习中主要会用到Spark的Python接口pyspark
,所以在这儿也需要配置Python的环境变量:
1 | # Setting PATH for Python 2.7 |
2.伪分布式安装
Spark的安装和简单,只需要将Spark的安装包download下来,加入PATH即可。这里我用的是Spark 1.4.0
当然,这里也可以使用Homebrew安装,那就更轻松了,直接
1 | $ brew install apache-spark |
就搞定了,不过Homebrew安装没办法自己控制箱要安装的版本
这里我使用下载对Hadoop2.6的预编译版本安装
1 | cd /usr/local/Cellar/ |
设置Spark环境变量,~/.bash_profile
:
1 | export SPARK_MASTER=localhost |
安装完成,貌似也没什么安装哈~
跑起来
执行Spark根目录下的pyspark就可以以交互的模式使用Spark了,这也是他的一个优点
出现Spark的标志,那就说明安装成功了。下面再小配置下,让画面的log简单一点。在$SPARK_HOME/conf/
下配置一下log4j
的设置。
把log4j.properties.template
文件复制一份,并删掉.template
的扩展名
把这个文件中的INFO
内容全部替换成WARN
在IPython中运行Spark
说Spark好,那么IPython更是一大杀器,这个以后再介绍。先说设置
首先,创建IPython的Spark配置
1 | $ ipython profile create pyspark |
然后创建文件$HOME/.ipython/profile_spark/startup/00-pyspark-setup.py
并添加:
1 | import os |
在IPython notebook中跑Spark
1 | $ ipython notebook --profile=pyspark |
开始学习Spark吧!