1、编辑 spark-env.sh
[victor@node1 spark]$ vim conf/spark-env.sh
HADOOP_CONF_DIR=/opt/module/hadoop-2.8.2/etc/hadoop
YARN_CONF_DIR=/opt/module/hadoop-2.8.2/etc/hadoop
尖叫提示:让Spark能够发现Hadoop配置文件,不分发,在yarn模式中spark只是一个客户端,只需要部署一台机器,可以删除另外两个节点 master不用注释掉,因为不是HA高可用,有没有都行
2、编辑 yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--是否启动一个线程检查每个任务正使用的物理内存量,
如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,
如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
尖叫提示:在正常情况内存是够的,目前学习阶段,要求的内存和提供的内存不匹配,提供的内存的小了,如果不把检查关掉,会把程序关闭
分发
一定要分发,因为这hadoop的配置文件,在yarn模式中,spark只是一个客户端,spark的配置文件可以不分发
[victor@node1 hadoop-2.8.2]$ rsync -rvl \
etc/ victor@node2:/opt/module/hadoop-2.8.2/etc/
[victor@node1 hadoop-2.8.2]$ rsync -rvl \
etc/ victor@node3:/opt/module/hadoop-2.8.2/etc/
3、启动
[victor@node1 hadoop-2.8.2]$ sbin/start-dfs.sh
[victor@node2 hadoop-2.8.2]$ sbin/start-yarn.sh
[victor@node1 spark]$ sbin/start-history-server.sh
尖叫提示:HistoryServer根据需要启动即可
4、查看日志
http://node2:8088/cluster
http://node1:4000/
5、执行一个spark程序(Yarn)
[victor@node1 spark]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
/opt/module/spark/examples/jars/spark-examples_2.11-2.1.1.jar \
100
6、进入spark-shell
[victor@node1 spark]$ bin/spark-shell \
--master yarn \
--deploy-mode client \
--executor-memory 2g \
--total-executor-cores 2
尖叫提示:yarn模式下启动./spark-shell --master yarn(会报缺少驱动的错误) 需要加上--jars mysql驱动包或者加载jars文件夹下