《Spark机器学习》笔记---Spark的本地安装与配置

一、Spark简介

Apache Spark是一个分布式计算框架,旨在简化运行于计算机集群上的并行程序的编写,该框架对资源调度,任务的提交、执行和跟踪,节点间的通信以及数据并行处理的内在底层操作都进行了抽象。它提供了一个更高级别的API用于处理分布式数据。从这方面说,它与Apache Hadoop等分布式处理框架类似。但在底层架构上, Spark与它们有所不同。

Spark起源于加利福利亚大学伯克利分校的一个研究项目。学校当时关注分布式机器学习算法的应用情况。因此,Spark从一开始便为应对迭代式应用的高性能需求而设计。在这类应用中,相同的数据会被多次访问。该设计主要靠利用数据集内存缓存以及启动任务时的低延迟和低系统开销来实现高性能。再加上其容错性、灵活的分布式数据结构和强大的函数式编程接口, Spark在各类基于机器学习和迭代分析的大规模数据处理任务上有广泛的应用,这也表明了其实用性。

二、Spark运行模式

Spark支持四种运行模式。

  1. 本地单机模式:所有Spark进程都运行在同一个Java虚拟机(Java Vitural Machine, JVM)中。
  2. 集群单机模式:使用Spark自己内置的任务调度框架。
  3. 基于Mesos: Mesos是一个流行的开源集群计算框架。
  4. 基于YARN:即Hadoop 2,它是一个与Hadoop关联的集群计算和资源调度框架。

三、Spark的本地安装与配置

Spark能通过内置的单机集群调度器来在本地运行。此时,所有的Spark进程运行在同一个Java虚拟机中。这实际上构造了一个独立、多线程版本的Spark环境。本地模式很适合程序的原型设计、开发、调试及测试。同样,它也适应于在单机上进行多核并行计算的实际场景。
Spark的本地模式与集群模式完全兼容,本地编写和测试过的程序仅需增加少许设置便能在集群上运行。

* 下载
  1. Spark:
    本地构建Spark环境的第一步是下载其最新的版本包(本书写作时为1.2.0版)。各个版本的版本包及源代码的GitHub地址可从Spark项目的下载页面找到: http://spark.apache.org/downloads.html。
    本地构建Spark环境的第一步是下载其最新的版本包(本书写作时为1.2.0版)。各个版本的版本包及源代码的GitHub地址可从Spark项目的下载页面找到: http://spark.apache.org/downloads.html。
  2. HDFS:
    为了访问HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)以及标准或定制的Hadoop输入源, Spark的编译需要与Hadoop的版本对应。上述下载页面提供了针对Hadoop 1、CDH4(Cloudera的Hadoop发行版)、 MapR的Hadoop发行版和Hadoop 2(YARN)的预编译二进制包。除非你想构建针对特定版本Hadoop的Spark,否则建议你通过如下链接从Apache镜像下载Hadoop 2.4 预 编 译 版 本 : http://www.apache.org/dyn/closer.cgi/spark/spark-1.2.0/spark-1.2.0-binhadoop2.4.tgz。为了访问HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)以及标准或定制的Hadoop输入源, Spark的编译需要与Hadoop的版本对应。上述下载页面提供了针对Hadoop 1、CDH4(Cloudera的Hadoop发行版)、 MapR的Hadoop发行版和Hadoop 2(YARN)的预编译二进制包。除非你想构建针对特定版本Hadoop的Spark,否则建议你通过如下链接从Apache镜像下载Hadoop 2.4 预 编 译 版 本 : http://www.apache.org/dyn/closer.cgi/spark/spark-1.2.0/spark-1.2.0-binhadoop2.4.tgz。
  3. JDK:
    Spark的运行依赖Scala编程语言(本书写作时为2.10.4版)。好在预编译的二进制包中已包含Spark的运行依赖Scala编程语言(本书写作时为2.10.4版)。好在预编译的二进制包中已包含Spark的运行依赖Scala编程语言(本书写作时为2.10.4版)。好在预编译的二进制包中已包含Spark的运行依赖Scala编程语言(本书写作时为2.10.4版)。好在预编译的二进制包中已包含Scala运行环境,我们不需要另外安装Scala便可运行Spark。但是, JRE(Java运行时环境)或JDK(Java开发套件)是要安装的(相应的安装指南可参见本书代码包中的软硬件列表)。
* 安装:

下载完上述版本包后,解压,并在终端进入解压时新建的主目录:

>tar xfvz spark-1.2.0-bin-hadoop2.4.tgz
>cd spark-1.2.0-bin-hadoop2.4
* 测试

用户运行Spark的脚本在该目录的bin目录下。我们可以运行Spark附带的一个示例程序来测试是否一切正常:

>./bin/run-example org.apache.spark.examples.SparkPi

该命令将在本地单机模式下执行SparkPi这个示例。在该模式下,所有的Spark进程均运行于同一个JVM中,而并行处理则通过多线程来实现。默认情况下,该示例会启用与本地系统的CPU核心数目相同的线程。示例运行完,应可在输出的结尾看到类似如下的提示:

...
14/11/27 20:58:47 INFO SparkContext: Job finished: reduce at SparkPi.scala:35,
took 0.723269s
Pi is roughly 3.1465
...

要在本地模式下设置并行的级别,以local[N]的格式来指定一个master变量即可。上述参数中的N表示要使用的线程数目。比如只使用两个线程时,可输入如下命令:

>MASTER=local[2] ./bin/run-example org.apache.spark.examples.SparkPi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值