配置集群
1.上傳并解壓spark-3.1.2-bin-hadoop3.2.tgz,重命名解壓之后的目錄為spark-yarn。
2. 修改一下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/
3.修改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/同步一下。
4.修改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文件中添加
HADOOP_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
在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
5.同步配置文件到其他設備。
使用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
代碼說明:
spark-submit:這是 Spark 提供的用于提交 Spark 應用程序的腳本。
2. --class org.apache.spark.examples.SparkPi:指定了應用程序