Linux环境下 java程序提交spark任务到Yarn报错

举报
刘大猫 发表于 2025/10/10 21:13:53 2025/10/10
【摘要】 Linux环境下 java程序提交spark任务到Yarn报错

image.png
@[TOC]

摘要

  1. 情况1:JSON解析异常
  2. 情况2:java.lang.InstantiationException spark.sql.driver
  3. 情况3 中kafka:java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/Callback
  4. 情况4 idea启动报错:Connection to node -1 could not be established. Broker may not be available
  5. 情况5中kafka: Caused by: java.nio.channels.UnresolvedAddressException master:8080

情况1:JSON解析异常

image.png

出错原因:spark命令提交参数json,到另一个jar发现{{或者}}消失了,导致解析异常
解决方案: 双括号间+空格

情况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

出错原因:运行期缺少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前面多了空格,导致层级目录出错

解决方案:
image.png

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

出错原因:ip映射没修改对,导致不认识master

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

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。