解决spark standalone模式 以cluster模式提交时找不到jar包问题

时间:2024-03-30 14:50:24

原submit提交脚本:

#!/bin/bash
spark-submit \
  --class com.jxre.bigdata.sparks.SumIrradiateCalc \
  --master spark://node1.sdp.cn:7077 \
  --driver-memory 3G \
  --deploy-mode cluster \
  --supervise \
  --executor-memory 12G \
  --total-executor-cores 2\
  --name SumIrradiateCalc \
  --conf spark.sql.warehouse.dir=hdfs://node1.sdp.cn:8020/user/hive/warehouse \
  /opt/spark/sparkapp.jar

错误提示:

解决spark standalone模式 以cluster模式提交时找不到jar包问题

问题原因

注意:standalone 模式的 cluster 要把jar 文件传到hdfs上面去,因为driver在集群中的任意一节点执行。

解决方案

步骤1:将打包好的xxx.jar文件上传到hdfs中

#切换到hdfs用户
su hdfs
#列出HDFS下的文件
$ hadoop dfs -ls /
#创建目录文件如‘sparkapp’
$hadoop dfs -mkdir /sparkapp
#上传打包好的xx.jar到/sparkapp目录下
$hadoop dfs -put /loaclpath/xx.jar /sparkapp
#查看已上传的文件
$ hadoop dfs -ls /sparkapp

步骤2:调整submit脚本文件

将/opt/spark/sparkapp.jar改为hdfs://node1.sdp.cn:8020/sparkapp/sparkapp.jar

#!/bin/bash
spark-submit \
  --class com.jxre.bigdata.sparks.SumIrradiateCalc \
  --master spark://node1.sdp.cn:7077 \
  --driver-memory 3G \
  --deploy-mode cluster \
  --supervise \
  --executor-memory 12G \
  --total-executor-cores 2\
  --name SumIrradiateCalc \
  --conf spark.sql.warehouse.dir=hdfs://node1.sdp.cn:8020/user/hive/warehouse \
  hdfs://node1.sdp.cn:8020/sparkapp/sparkapp.jar