Spark,集群搭建之Yarn模式
集群搭建之Yarn模式
一、解压
上传并解压spark-3.1.2-bin-hadoop3.2.tgz,重命名解压之后的目录为spark-yarn。对应的命令是:
tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module
二、配置文件
修改一下spark的环境变量,打开 /etc/profile.d/my_env.sh 文件内容改为如下:
# spark 环境变量
export SPARK_HOME=/opt/module/spark-yarn
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
并同步给其他的设备 对应命令为: xsync /etc/profile.d/
三、修改hadoop的配置
打开 /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml 因为测试环境虚拟机内存较少,防止执行过程进行被意外杀死,添加如下配置。
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是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>
把这个设置分发到其他节点。使用命令 xsync /opt/module/hadoop-3.1.3/etc/hadoop/ 同步一下。
四、修改spark配置
把三个文件的名字重新设置一下。workers.tempalte 改成 workers;spark-env.sh.template 改成 spark-env.sh;spark-defaults.conf.template 改成 spark-defaults.conf。
然后,在workers文件中添加
hadoop100
hadoop101
hadoop102
在spark-env.sh文件中,添加如下
SPARK_MASTER_HOST=hadoop100
SPARK_MASTER_PORT=7077
HADOOP_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop100:8020/directory"
在spark-defaults.conf文件中,添加如下
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop100:8020/directory
spark.yarn.historyServer.address=hadoop100:18080
spark.history.ui.port=18080
五、同步
同步配置文件到其他设备。xsync /opt/module/spark-yarn/sbin
六、启动集群
启动hdfs和yarn。使用我们之前配置的脚本:myhadoop start
启动spark和spark的历史服务器。进入/opt/module/spark-yarn/sbin,运行: ./start-all.sh 和 ./start-history-server.sh
并通过jps去检查是否有对应的进程。
七、使用spark-submit提交任务
对应命令为:spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster /opt/module/spark-standalone/examples/jars/spark-examples_2.12-3.1.1.jar 10
八、查看运行结果
在yarn任务面板页面中可以看到任务的信息。http://hadoop101:8088/cluster
点击history上的链接,可以跳转进入到spark的历史服务器的界面。