本文介绍spark入门知识及如何以单机模式安装spark
- 对于大数据处理框架来说,hadoop是基于磁盘的,而spark是基于内存的,这是两者最显著的区别
- spark是基于scala语言的,因此以原生的scala语言运行spark任务会很高效。而现在spark对python的支持也越来越好,用户可以根据自己的喜好和习惯进行选择
安装spark
下载软件包
- spark在github上有自己的开源项目,代码还在不断改进中。可以直接将源码git clone下来:
git clone https://github.com/apache/spark.git
如果想要安装稳定版本,可直接登陆spark官网,选择不同的release版本进行下载:
编译安装
- 我选择的是standalone的安装方式,也就是将spark安装在一台具有多核cpu的主机上,使用的操作系统是Ubuntu14.04
- 安装指令:
cd spark
build/mvn -DskipTests clean package
- 如果使用mvn指令进行构建的话需要安装mvn,不过往往build指令已经够用了。在指令执行过程中会有大量信息输出,等待几分钟后,如果没有问题会提示安装成功
测试spark
- 在提示spark安装成功后,可以执行如下指令:
cd spark
./bin/pyspark
- 该命令启动的是spark的python shell,界面如下
Python 2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
15/10/21 22:35:31 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/10/21 22:35:37 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 1.5.0-SNAPSHOT
/_/
Using Python version 2.7.5 (default, Jun 17 2014 18:11:42)
SparkContext available as sc, SQLContext available as sqlContext.
>>>
- 可以从中看到一些spark的相关信息,比如python版本和spark版本,以及SparkContext等。下面可以通过python shell令spark执行相关命令
>>> sc.parallelize(range(1,100,2)).count()
50
- 该指令的意思是用spark在1-100之间每隔一个数计数一次,结果是50。我在spark的conf目录下修改了日志文件,减少了不必要INFO的输出,使界面更加简洁。在下一篇博客中我会介绍如何进行输出消息的简化以及如何提交spark任务。