spark疑难杂症

背景:上周spark任务还能正常运行。突然执行就开始报错?

写了一个spark的功能读取csv然后导入到hive功能,

先看报错FileNotFoundException :这个报错可太简单了吧,不是就是文件文件找不到,啥文件找不到我就复制啥文件不好了么?是哪个文件?怎么好像打印乱码了呢? 先不管。。。。

在接着看

TGT Renewer for hive@CDH.COM] security.UserGroupInformation (UserGroupInformation.java:run(1026)) - Exception encountered while running the renewal command for hive@CDH.COM. (TGT end time:1629455062000, renewalFailures: 0, renewalFailuresTotal: 1

什么kerberos报错了?擦怎么回事,是认证过期?还是登录失败,还是kerberos server还是client有问题?一瞬间大脑开始有了无数个想法

java.io.FileNotFoundException: File file:/data/share/dw_ia_portraitsearch/shell/2021-08-20 15:29:28,848 WARN  [TGT Renewer for hive@CDH.COM] security.UserGroupInformation (UserGroupInformation.java:run(1026)) - Exception encountered while running the renewal command for hive@CDH.COM. (TGT end time:1629455062000, renewalFailures: 0, renewalFailuresTotal: 1) does not exist
	at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:641)
	at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:867)
	at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:631)
	at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:442)
	at org.apache.spark.scheduler.EventLoggingListener.start(EventLoggingListener.scala:103)
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:533)
	at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2549)
	at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:944)
	at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:935)
	at scala.Option.getOrElse(Option.scala:121)
	at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:935)
	at com.tencent.s2.job.Kudu2HiveJob.launch(Kudu2HiveJob.java:51)
	at com.tencent.s2.AppJob$1.run(AppJob.java:56)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

 

立马开始查看 klist 没有过期

[devuser@worker01 /data/share/dw_ia_portraitsearch/shell]$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: hive@CDH.COM

Valid starting       Expires              Service principal
2021-08-24T18:05:39  2021-08-25T18:05:39  krbtgt/CDH.COM@CDH.COM
    renew until 2021-08-31T18:05:39

 代码里的认证

 

 查看打印日志 也没啥问题?

这就奇了怪了。

仔细看日志里有 [TGT Renewer for hive@CDH.COM]

是续期失败?赶快截图给运维看下,运维说没啥问题啊。

继续看日志

21/08/24 18:05:41 INFO security.UserGroupInformation: Login successful for user hive@CDH.COM using keytab file /data/share/hive.keytab. Keytab auto renewal enabled : false

显示登录成功了啊,按道理应该没问题了 ,怎么回事啊

备注:此时我到了这陷入了kerberos的奇怪问题中,但是FileNotFInd这个问题直接pass了 。。。

继续看..

Warning: Ignoring non-spark config property: hdfs=//s2cluster/user/spark/applicationHistory
Warning: Ignoring non-spark config property: ExitCodeException=exitCode=1: kinit: KDC can't fulfill requested option while renewing credentials
Warning: Ignoring non-spark config property: at=java.lang.Thread.run(Thread.java:748)
启动的时候出现了warning?

而且说没有spark的属性,这些属性都有点奇怪,一般不是spark.xx.xx这样的么,仔细看又出现了

 kinit: KDC can't fulfill requested option while renewing credentials 

又是kerberos。。。。

自此陷入了kerberos的怪圈,肯定是有问题,思考了一上午,顺带把kerberos的命令又都测了一遍,无果。

百度 https://www.oschina.net/question/4191871_2316093

 其实中间我还看了spark的源码。

第一方面 java.io.FileNotFoundException

 确实报的文件不存在。

第二方面我还看了报错RawLocalFileSystem

    at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:867

为什么是本地文件系统,不应该是hdfs的文件系统么

研究无果。。。其实我一直离真相只差一步。

答案就是问题FileNotFind 这个问题上,这个文件不存在,那就是文件不存在。

java.io.FileNotFoundException: File file:/data/share/dw_ia_portraitsearch/shell/2021-08-20 15:29:28,848 WARN  [TGT Renewer for hive@CDH.COM] security.UserGroupInformation (UserGroupInformation.java:run(1026)) - Exception encountered while running the renewal command for hive@CDH.COM. (TGT end time:1629455062000, renewalFailures: 0, renewalFailuresTotal: 1) does not exist
这么一长串就是文件名字!!!!!!!!那么肯定是有人传参有问题,或者配置项有问题

而且 spark都说了Warning: Ignoring non-spark config property:  那就是说加载了spark不能读取的kv对。

所以我怀疑是有人动了cdh配置,反复询问,都说没人动。而且此时运维说flink也能正常跑啊,那就是spark不能跑。

突然灵光一闪,先前百度有人说是配置文件,那么就是这里有问题,看下。spark配置文件是啥呢???

查看文件简直不敢相信 我的眼睛。。。这些东西从哪里来的????

 删除即可。唉。。。

总结下这个事情解决思路。

习惯把简单问题复杂化,既然报了这个错,那就是这个错,至于输出乱码不存在的,别人的代码习惯比我们强

报了错 一定要理清思路。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值