Apache Spark a fast and general engine for large-scale data processing
Spark是一个高效的分布式计算系统,相比Hadoop,它在性能上比Hadoop要高100倍。Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它克服了MapReduce在迭代式计算和交互式计算方面的不足,通过引入RDD(Resilient Distributed Datasets)数据表示模型,能够很好地解决MapReduce不易解决的问题。相比于MapReduce,Spark能够充分利用内存资源提高计算效率。
一、基本环境
包含三个节点:
master(Ubuntu Desktop版本) 192.168.145.128
slave1(Ubuntu Server版本) 192.168.145.129
slave2(Ubuntu Server版本) 192.168.145.130
操作系统:Ubuntu14.04 x64
JDK版本:jdk1.8.0_11
Hadoop版本:Hadoop-2.2.0
Scala版本:2.10.4(官网要求2.10.X)
Spark版本:1.0.1
取得《Spark-1.0.1 的make-distribution.sh编译、SBT编译、Maven编译 三种编译方法》中编译好的 spark-1.0.1-bin-2.2.0.tgz
Hadoop-2.2.0集群的安装见http://www.cnblogs.com/fesh/p/3766656.html
Scala的安装见 http://www.cnblogs.com/fesh/p/3805611.html
(注:Scala在master节点上安装好后,直接用scp命令分发到slave1、slave2,并在slave1和slave2配置环境变量即可)
在master节点和slave1节点分别配置/etc/hosts和/etc/hostname:(下面这些应该在安装Hadoop集群时已经配置好了)
/etc/hosts
192.168.145.128 master 192.168.145.129 slave1
192.168.145.130 slave2
/etc/hostname (master)
master
/etc/hostname (slave1)
slave1
/etc/hostname (slave2)
slave2
二、Spark配置
1、master节点文件配置
在master节点:
解压spark-1.0.1-bin-2.2.0.tgz
tar -zxvf spark-1.0.1-bin-2.2.0.tgz
在/etc/profile中配置环境变量
#Set SPARK_HOME export SPARK_HOME=/home/fesh/spark-1.0.1-bin-2.2.0 export PATH=$PATH:$SPARK_HOME/bin
在spark-1.0.1-bin-2.2.0/conf下配置文件spark-env.sh和slaves:
cp spark-env.sh.template spark-env.sh sudo gedit spark-env.sh
在文件spark-env.sh末尾添加:
export HADOOP_CONF_DIR=/home/fesh/hadoop-2.2.0/etc/hadoop export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_11 export SCALA_HOME=/home/fesh/scala-2.10.4 export SPARK_MASTER_IP=master export SPARK_WORKER_MEMORY=512M export SPARK_EXECUTOR_MEMORY=512M export SPARK_EXECUTOR_INSTANCES=2 (下面这几项可以不配置,采用默认就可以了) export SPARK_EXECUTOR_CORES=1 export SPARK_DRIVER_MEMORY=512M export SPARK_YARN_APP_NAME="spark 1.0.1"
在文件slaves中去掉localhohst并设置
master slave1
slave2
2、分发文件
分发spark-1.0.1-bin-2.2.0文件到slave1节点
scp -r spark-1.0.1-bin-2.2.0 slave1:~/
分发spark-1.0.1-bin-2.2.0文件到slave2节点
scp -r spark-1.0.1-bin-2.2.0 slave2:~/
三、启动Spark集群
首先启动Hadoop-2.2.0集群,然后在spark-1.0.1-bin-2.2.0根目录下启动Spark集群
sbin/start-all.sh
对于slave1节点
对于slave2节点
四、查看信息
1、进入Spark集群的Web页面
在master节点上,浏览器访问: http://master:8080
2、控制台查看
进入{SPARK_HOME}/bin目录,使用 spark-shell 控制台
3、Web查看SparkUI
在master节点,浏览器进入 http://master:4040
五、停止Spark集群
sbin/stop-all.sh
参考: