原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
错误提示:
问题原因
注意: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