文章目录

  • 一、提交任务代码
  • 二、Linux提交可能出现的问题及解决方案
    • 情况1:JSON解析异常
    • 情况2:java.lang.InstantiationException spark.sql.driver
    • 情况3 中kafka:java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/Callback
    • 情况4 idea启动报错:Connection to node -1 could not be established. Broker may not be available
    • 情况5中kafka: Caused by: java.nio.channels.UnresolvedAddressException master:8080

一、提交任务代码

@Overridepublic Response submitApplication(String[] args) throws IOException, InterruptedException {log.info("spark任务传入参数args:{}", args);args[0] = args[0].replace("}}", "} }").replace("{{", "{ {");SparkLauncher  handle = new SparkLauncher().setAppResource(sparkJars)  //jar位置,可以是本地可以是hdfs上地址.setMainClass(sparkMainClass) //运行主函数,项目相对路径,要带包名.setMaster(sparkMaster)    //举例:yarn.setAppName("Submit Application To Yarn").setSparkHome(sparkHome) //linux中地址,举例:/usr/hdp/3.1.0.0-78/spark2.setDeployMode(sparkDeployMode)   //cluster.setVerbose(true).setConf("spark.driver.memory", sparkDriverMemory)  //1g.setConf("spark.executor.memory", sparkExecutorMemory)    //1g.setConf("spark.executor.cores", sparkExecutorCores)  //1.setVerbose(true).addAppArgs(args[0]);handle.startApplication(new SparkAppHandle.Listener() {//这里监听任务状态,当任务结束时(不管是什么原因结束),isFinal()方法会返回true,否则返回false@Overridepublic void stateChanged(SparkAppHandle sparkAppHandle) {if (sparkAppHandle.getState().isFinal()) {System.out.println("============stateChanged-getAppId:" + sparkAppHandle.getAppId());}System.out.println("getState:" + sparkAppHandle.getState().toString());}@Overridepublic void infoChanged(SparkAppHandle sparkAppHandle) {System.out.println("============infoChanged-getAppId:" + sparkAppHandle.getAppId());              }}});System.out.println("**********************The task is finished!");return Response.success();}

说明:
1)windows下无法运行,必须在linux中进行提交
2)这段代码必须在yarn所在linux服务器上运行,不然标识符.setMaster(“yarn”),不认识
3)这种方式如果在运行中想获得appId,只能在infoChanged中获得或者在stateChanged方法中代表当任务结束后获得,当然推荐使用前者

二、Linux提交可能出现的问题及解决方案

情况1:JSON解析异常

出错原因:spark命令提交参数json,到另一个jar发现{{或者}}消失了,导致解析异常

解决方案:https://blog.csdn.net/u010814849/article/details/78752074 双括号间+空格

情况2:java.lang.InstantiationException spark.sql.driver

出错原因:spark操作mysql数据库缺少驱动

解决方案:
Properties对象设置props.put(“driver”, “com.mysql.jdbc.Driver”);

情况3 中kafka:java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/Callback

出错原因:运行spark jar(也就是普通maven jar或者java jar,而不是springboot jar)期缺少jar包,问题出在maven程序打包没把依赖打进去

解决方案:添加打包插件指定打入依赖jar

<plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions>
</plugin>

情况4 idea启动报错:Connection to node -1 could not be established. Broker may not be available

出错原因:指定bootstrap-servers前面多了空格,导致层级目录出错,也就是说application.yml文件由于复杂导致多添加 “空格”,造成缩进格式混乱,这点尤其注意

解决方案:

情况5中kafka: Caused by: java.nio.channels.UnresolvedAddressException master:8080

出错原因:ip映射没修改对,导致不认识master,因为我们采用ambari安装的kafka,初始化为:localhost:6667,所以必须把“localhost” -》“IP”

解决方案:如果是ambari安装的kafka修改cinfig下面的,如果是自己linux搭建的,需改动kafka下的cinfig下的server.properties,把PLAINTEXT://localhost:6667 -》 改为PLAINTEXT://192.168.20.91:6667

SparkSubmit提交任务到yarn及报错解决方案相关推荐

  1. Spark系列之SparkSubmit提交任务到YARN

    title: Spark系列 第十三章 SparkSubmit提交任务到YARN 13.1 SparkSubmit提交的一些参数解释 local 本地单线程 local[K] 本地多线程(指定K个内核 ...

  2. react 脚手架创建后暴漏配置文件 运行yarn eject 报错 (已解决)

    创建项目后 运行yarn eject 报错问题 git add .git commit -am "save before eject"注:这里是 -am之后再次 yarn ejec ...

  3. yarn打包报错:error during build: Error: Assigning to rvalue (Note that you need plugins to import files

    欢迎关注csdn前端领域博主: 前端小王hs email: 337674757@qq.com 前端交流群: 598778642 error during build: Error: Assigning ...

  4. git 公钥提交代码_Git提交代码push的时候报错常见错误

    今天我想rk的sdk包里面的一些东西提交到我的git服务器上,结果,总是报错,折腾了一下午,结果才解决. 首先看看我提交代码的时候,报错的信息: git.exe push --progress &qu ...

  5. git提交大文件报错解决方案

    git提交大文件报错解决方案 1.http.postBuffer 2.Git LFS 安装及配置git lfs 1.在Git仓库中为仓库设置相关配置 2.选择要用LFS追踪的文件 3.查看正在被LFS ...

  6. TFS 报错解决方案:tf400324

    TFS 报错解决方案:tf400324 参考文章: (1)TFS 报错解决方案:tf400324 (2)https://www.cnblogs.com/xiaz/p/7443805.html 备忘一下 ...

  7. vue-cli打包构建时常见的报错解决方案

    vue-cli打包构建时常见的报错解决方案 参考文章: (1)vue-cli打包构建时常见的报错解决方案 (2)https://www.cnblogs.com/bester-ace/articles/ ...

  8. kali linux 安装 Mysql Can‘t read from messagefile 报错解决方案

    kali linux 安装 Mysql Can't read from messagefile 报错解决方案 参考文章: (1)kali linux 安装 Mysql Can't read from ...

  9. CentOS 6安装Oracle报错解决方案

    CentOS 6安装Oracle报错解决方案 参考文章: (1)CentOS 6安装Oracle报错解决方案 (2)https://www.cnblogs.com/lonecloud/p/689568 ...

最新文章

  1. 图像空间变换--imtransform
  2. Mongo、Redis、Memcached对比及知识总结
  3. 随机森林(Random Forest)和梯度提升树(GBDT)有什么区别?
  4. eclipse编码设置
  5. 一位读者刚刚收割阿里、腾讯等大厂Offer,他说这些话一定要和你们说一下
  6. SAP Spartacus 的路由配置
  7. webclient无法获取html文件,C# WebClient获取网页源码的方法
  8. 前后端敏感数据加密方案及实现_03
  9. BootStrap笔记-popover的使用(popover中放验证码,点击更新)
  10. appium-python 学习记录
  11. category与extension
  12. micoolcoder 验证码 for php v1.0 全字符版,Micoolcoder 验证码 for PHP v1.0 全字符版
  13. C++ - Opencv模板匹配与块匹配
  14. maven parent 覆盖_Maven 最佳实践之 · 一个好的 parent 依赖基础
  15. 计算机考试后进先出,事业单位考试计算机基础知识:建立单链表——后进先出表...
  16. 工业制造行业B2B电商平台解决方案
  17. 使用echarts的3D地图中的map3D与scatter3D混合使用时出现坐标位移的情况
  18. python兔子生兔子_Python兔子生兔子算法,编程练习题实例十一
  19. iOS学习笔记75-NSURLSession使用实战教程
  20. 数据仓库---JPivot连接MySQL VS PostgreSQL

热门文章

  1. 在IDEA中给项目同时配置git和svn
  2. uva11400 动态规划
  3. 分享一本Java并发编程的免费好书
  4. 将dae格式文件导入RViz中创建环境
  5. 浅谈Spark Livy
  6. C++ 判断文件文件夹是否存在
  7. 公开课|7月15日“隐私计算+区块链”安全解锁数据价值
  8. 音视频处理 ffmpeg初级开发 命令行工具-实用命令
  9. IAR问题:Failed to get CPU status after 4 retries Retry?
  10. 【往届已检索】第二届电子、信息与计算技术前沿国际会议征稿中