问题导读
1.spark on yarn你认为有什么优势?
2.spark on yarn该如何配置?
3.spark on yarn如何提交job?
本文介绍的是如何将Apache Spark部署到Hadoop 2.4.1上,如果你们的Hadoop是其他版本,比如CDH4,可直接参考官方说明操作。
需要注意两点:
(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完全分布式搭建
hadoop2.2完全分布式最新高可靠安装文档
下载spark
http://spark.apache.org/
注意spark版本的问题,pre-built,hadoop-2.4
因为这是搭建在yarn上的。如果搭建在mesos上,需要下载对应的版本。
1. 安装scala
- tar -xvzf scala-2.10.4.tgz
复制代码
复制代码
- sudo mv scala /usr/local/
复制代码
添加环境变量:
复制代码
将如下内容添加到文件末尾
- #scala
- export SCALA_HOME=/usr/local/scala
- export PATH=$SCALA_HOME/bin:$PATH
复制代码
保存并更新/etc/profile:
复制代码
测试scala是否安装成功:
复制代码
2. 安装Spark
- 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:
复制代码
修改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
复制代码
|