Spark|Spark on YARN 部署

1.说明:

  1. 首先要部署好Hadoop集群包括HDFS和YARN,这里不再赘述.
  2. Spark on YARN模式,不需要启动spark的master和worker,master的工作由YARN完成.
  3. 相关路径根据实际情况修改.
  4. 1.4和1.6版本部署过程类似.
2.部署 下载 从官网(http://spark.apache.org/)下载对应Hadoop版本的包,如spark-1.6.1-bin-hadoop2.4.tgz.
解压至某个目录,如”/usr/local/hadoop/spark-1.6.1-bin-hadoop2.4”.
解压后得到如下文件

配置 配置文件在conf目录中.
配置环境变量
cp spark-env.sh.template spark-env.sh
在spark-env.sh中添加如下:
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.4.1 export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop/

配置spark选项
cp spark-defaults.conf.template spark-defaults.conf
添加如下:
spark.masteryarn#指定使用yarn spark.driver.memory1g#指定driver使用的内存 spark.executor.memory512m#指定executor使用的内存

选填:
spark.executor.extraClassPath/data/hadoop/hadoop/hadoop-2.4.1/share/hadoop/common/lib/hadoop-lzo-0.4.20.jar spark.driver.extraClassPath/data/hadoop/hadoop/hadoop-2.4.1/share/hadoop/common/lib/* spark.kryoserializer.buffer.max256m

另外也可以设置一下Spark的log4j配置文件,使得屏幕中不打印额外的INFO信息:
cp log4j.properties.template log4j.properties
修改一行
log4j.rootCategory=WARN, console

启动一个spark应用 执行 ./bin/spark-shell
【Spark|Spark on YARN 部署】输出将包括如下所示

浏览器访问当前机器的8088端口,将可以看到当前启动的driver的web界面,如下:

点击’Environment’标签,将可以看到相关环境变量和属性的值.
浏览器访问YARN的管理页面,可以看到有一个SPARK应用正在运行(如下),至此spark就可以跑在YARN上了.

3.运行模式 Spark on YARN有两种运行模式cluster和client,spark-shell和spark-sql交互式的应用只支持client模式.
两种模式区别如下:
从广义上讲,yarn-cluster适用于生产环境;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出。
可以参考这篇博客:Spark:Yarn-cluster和Yarn-client区别与联系(http://www.iteblog.com/archives/1223).
4.参考文献: Running Spark on YARN
http://spark.apache.org/docs/latest/running-on-yarn.html
原文:http://liam8.ml/2016/03/29/spark-on-yarn/

    推荐阅读