黑猴子的家:Spark [ Yarn ] 模式

黑猴子的家:Spark [ Yarn ] 模式

1、编辑 spark-env.sh

[[email protected] 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>

尖叫提示:在正常情况内存是够的,目前学习阶段,要求的内存和提供的内存不匹配,提供的内存的小了,如果不把检查关掉,会把程序关闭

分发,可以不分发,在yarn模式中,spark只是一个客户端

[[email protected] hadoop-2.8.2]$ rsync -rvl etc/ [email protected]:/opt/module/hadoop-2.8.2/etc/
[[email protected] hadoop-2.8.2]$ rsync -rvl etc/ [email protected]:/opt/module/hadoop-2.8.2/etc/

3、启动

[[email protected] hadoop-2.8.2]$ sbin/start-dfs.sh
[[email protected] hadoop-2.8.2]$ sbin/start-yarn.sh
[[email protected] spark]$ sbin/start-history-server.sh

尖叫提示:HistoryServer根据需要启动即可

4、查看日志

http://node2:8088/cluster
http://node1:4000/

5、执行一个spark程序(Yarn)

[[email protected] 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

[[email protected] spark]$ bin/spark-shell \
--master yarn --deploy-mode client \
--executor-memory 2g \
--total-executor-cores 2

尖叫提示:yarn模式下启动./spark-shell  --master yarn(会报缺少驱动的错误)
需要加上--jars mysql驱动包或者加载jars文件夹下。

7、Standalone 与 Yarn 对比

黑猴子的家:Spark [ Yarn ] 模式