承接上一篇文档《Spark案例练习-打包提交》
将spark应用运行在yarn集群上
官网地址:http://spark.apache.org/docs/2.0.2/running-on-yarn.html
1. 在spark-env.sh中配置HADOOP_CONF_DIR 或者 YARN_CONF_DIR
![a92055322f336b6013ead4fda1acb8b8.png](https://i-blog.csdnimg.cn/blog_migrate/538367e173dd63afccc487d2dd15d06d.jpeg)
HADOOP_CONF_DIR=/opt/bigdata/hadoop-2.7.3/etc/hadoop
![7dda850069bcec13f5c0a5efb5494817.png](https://i-blog.csdnimg.cn/blog_migrate/6f3f5120459620bbfc2274b4b1f0d804.jpeg)
2. 启动hdfs和yarn
./sbin/start-yarn.sh
![bcf9913451b4396245086e81e0469fdf.png](https://i-blog.csdnimg.cn/blog_migrate/73ac84af65208b19e79e62f2622c7182.jpeg)
3. 测试运行
浏览器访问master:8088
在8088端口下(yarn的UI下)查看下面语句的效果:
默认部署模式是client
执行命令
./bin/spark-submit --class 全包.类名 --master yarn jar包位置
这里遇到了一个错误
ERROR cluster.YarnClientSchedulerBackend: Yarn application has already exited with state FINISHED!
查了一下是因为内存分配不够导致的yarn强行关闭
往yarn-site.xml中加入
yarn.nodemanager.vmem-check-enabledfalse
重启hadoop即可解决