前沿
因算法评测系统使用hadoop,且用spark代替了mapreduce,故习之
什么是spark?
Spark是UC Berkeley AMP lab开发的一个集群计算的框架,类似于Hadoop,但有很多的区别(详细见3.4
)。最大的优化是让计算任务的中间结果可以存储在内存中,不需要每次都写入HDFS,更适用于需要迭代的MapReduce算法场景中,可以获得更好的性能提升。例如一次排序测试中,对100TB数据进行排序,Spark比Hadoop快三倍,并且只需要十分之一的机器。Spark集群目前最大的可以达到8000节点,处理的数据达到PB级别,在互联网企业中应用非常广泛。
Apache Spark 是个通用的集群计算框架,通过将大量数据集计算任务分配到多台计算机上,提供高效内存计算。Spark 正如其名,最大的特点就是快(Lightning-fast),可比 Hadoop MapReduce 的处理速度快 100 倍。如果你熟悉 Hadoop,那么你知道分布式计算框架要解决两个问题:如何分发数据和如何分发计算。Hadoop 使用 HDFS 来解决分布式数据问题,MapReduce 计算范式提供有效的分布式计算。类似的,Spark 拥有多种语言的函数式编程 API,提供了除 map 和 reduce 之外更多的运算符,这些操作是通过一个称作弹性分布式数据集(resilient distributed datasets, RDDs)的分布式数据框架进行的。
spark环境搭建(pyspark ubuntu16.04)
1安装java环境
sudo apt-get update(更新软件包列表)
sudo apt-get install openjdk-8-jdk安装
java -version检查是否安装成功
2安装scala环境
http://www.scala-lang.org/download/官网下载对应安装包
解压安装包
tar -zxvf scala-2.11.8.tgz
mv scala-2.11.8/ scala
sudo mv scala/ /usr/lib/
配置.bashrc
在~/.bashrc文件后面追加以下内容(注意各自具体的安装路径)
#set scala env
export SCALA_HOME=/usr/lib/scala
export PATH=${SCALA_HOME}/bin:$PATH
保存source ~/.bashrc
scala -version检查是否安装成功
3安装pyspark
https://spark.apache.org/downloads.html/官网下载对应安装包
tar -xvf spark-2.1.0-bin-hadoop2.7.tgz解压
vim .bashrc编辑此文件,将如下配置写入文件末尾,并且保存(注意spark的安装目录)
export SPARK_HOME = /home/hadoop/spark-2.1.0-bin-hadoop2.7
export PATH = $PATH:/home/hadoop/spark-2.1.0-bin-hadoop2.7/bin
export PYTHONPATH = $SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
export PATH = $SPARK_HOME/python:$PATH
source .bashrc
切换到spark的安装目录,执行
./bin/pyspark检验是否安装成功