需要注意两点:(1)使用的Hadoop必须是2.0系列,比如0.23.x,2.0.x,2.x.x或CDH4、CDH5等,将Spark运行在Hadoop上,本质上是将Spark运行在Hadoop YARN上,因为Spark自身只提供了作业管理功能,资源调度要依托于第三方系统,比如YARN或Mesos等 (2)之所以不采用Mesos而是YARN,是因为YARN拥有强大的社区支持,且逐步已经成为资源管理系统中的标准。
在linux环境下hadoop2.X完全分布式搭建
http://blog.csdn.net/u012480384/article/details/40514359
下载spark
http://spark.apache.org/
注意spark版本的问题,pre-built,hadoop-2.4
因为这是搭建在yarn上的。如果搭建在mesos上,需要下载对应的版本。
1. 安装scala
$ tar -xvzf scala-2.10.4.tgz
$ mv scala-2.10.4 scala
$ sudo mv scala /usr/local/
添加环境变量:
$ sudo vi /etc/profile
将如下内容添加到文件末尾
#scala
export SCALA_HOME=/usr/local/scala
export PATH=$SCALA_HOME/bin:$PATH
保存并更新/etc/profile:
$ source /etc/profile
测试scala是否安装成功:
$ scala -version
$ sudo cp spark-1.1.0-bin-hadoop2.4.tgz /usr/local
$ sudo tar -xvzf spark-1.1.0-bin-hadoop2.4.tgz
$ tar -xvzf spark-1.1.0-bin-hadoop2.4.tgz
$ mv spark-1.1.0-bin-hadoop2.4 spark
$ sudo mv spark /usr/local/
在/etc/profile文件的末尾添加环境变量:
#spark
export SPARK_HOME=/usr/local/spark-1.1.0-bin-hadoop2.4
export PATH=$SPARK_HOME/bin:$PATH
保存并更新/etc/profile:
$ source /etc/profile
修改conf目录下的spark-env.sh,添加环境变量
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_HOME=/usr/local/spark
export SPARK_JAR=/usr/local/spark/lib/spark-assembly-1.1.0-hadoop2.4.0.jar
export PATH=$SPARK_HOME/bin:$PATH
注:
HADOOP_CONF_DIR YARN_CONF_DIR这2个变量任选其一
SPARK_JAR 必须指定。
3.提交job 的命令 ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn-cluster \
--num-executors 1 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
lib/spark-examples*.jar \
1