spark报错解决

1:报错:Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1.0 failed 4 times, most recent failure: Lost task 0.3 in stage 1.0 (TID 143) (hadoop01 executor 3): org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.String AES_decrypt_anyKeyIv_UDF.evaluate(java.lang.String,java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception with arguments {,l3sd6aux76633600,13263791,YRAaS0YtW7unK/xevshtDQ==}:SecurityException: JCE cannot authenticate the provider BC
......
Caused by: cn.hutool.crypto.CryptoException: SecurityException: JCE cannot authenticate the provider BC

原因:Java Cryptography Extension (JCE)和Bouncy Castle (BC)提供者认证相关的问题。

"JCE cannot authenticate the provider BC" 这个错误通常意味着Java环境在尝试使用Bouncy Castle提供的加密算法时,无法验证该提供者的身份。

解决:可以在pom.xml文件中添加以下依赖项:

    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.52</version>  //具体版本视情况而定
    </dependency>

2:错误现象:提交的spark任务运行完成没有报任何错,但是没有数据写入目标表中。经过核验数据统计范围和逻辑是有结果数据的。

解决:在spark-submit的参数中增加hive集群配置文件,如:

--files /etc/hive/conf.cloudera.hive/hive-site.xml \

3:报错:Caused by: java.lang.ClassNotFoundException:org.elasticsearch.spark.sql.DefaultSource

原因:代码中读、写数据到elasticsearch中,我们平常搭建的cdh集群的依赖文件夹中缺少elasticsearch的相关炸包。

解决:到es官网下载es和spark炸包,放到集群依赖文件夹中

我的集群scala版本是2.11。我下载的炸包:elasticsearch-spark-20_2.11-7.10.0.jar

放到:/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/spark/jars/elasticsearch-spark-20_2.11-7.10.0.jar

需要重启集群使其生效。

4:报错:java.lang.ClassNotFoundException: scala.Product$class

原因:1.Scala版本不匹配;

2.依赖项缺失:你的项目缺少包含Product类的依赖项,确保包含了scala-library依赖项;

3.类路径问题:确保正确地指向了包含scala.Product的jar包。

解决:我是因为pom依赖中少scala-library依赖,添加后解决问题。(没有时其他类正常跑)

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.11.11</version> //视自身scala版本而定 
</dependency>

5:报错:

Application diagnostics message: Application application_1702035690898_0215 failed 2 times due to AM Container for appattempt_1702035690898_0215_000002 exited with  exitCode: 13
Failing this attempt.Diagnostics: [2023-12-09 14:37:04.929]Exception from container-launch.
Container id: container_1702035690898_0215_02_000001

解决:找到集群的hive-site.xml我的在cdh集群位置:/etc/hive/conf.cloudera.hive/yarn-site.xml 

添加到spark-submit 命令中

#!/bin/bash

date_ymd=`date -d "-1 day" +%Y-%m-%d` 

spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-memory 2g \
--driver-cores 2 \
--num-executors 4 \
--executor-memory 2g \
--executor-cores 4 \
--class rp.ods2cdm.dwd_overdue_order_day_idcard_di \
--files /etc/hive/conf.cloudera.hive/hive-site.xml,/etc/hive/conf.cloudera.hive/yarn-site.xml \
hdfs:///user/xx_wj/jar/big_data-var20231209.jar $date_ymd
sleep 2

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值