大数据

Spark执行错误--> Task分配了但是一直不执行

2019-12-16  本文已影响0人  勤奋的超跑

一、问题现象

1,同样一个执行语句在Spark-shell中就可以执行,但是在Spark-submit中执行时等待了很长时间但是Task一直没有执行

2,通过Spark-submit执行时可以获取HIVE中的数据库结构

3,通过查看driver的执行日志并没异常,并且没有提示错误

二、分析问题

1,首先我们需要查看web界面中Job模块查看执行过程,通过查看执行流程我们可以看到正在执行的job,并且执行到第0个task(Runing)

2,如果这时直接点击driver的stderr是查看所有的执行过程,并不能发现错误 需要取去executes中查看活跃的Tasks 也就需要点击Active中不为0的task的stderr中查看日志

Active Tasks

3,通过日志 发现错误:ERROR netty.Inbox: Ignoring error java.io.EOFException  at java.io.DataInputStream.readFully(DataInputStream.java:197) 该错误是通讯异常,但是问题应该是环境配置导致的,故先查看spark所导入的jar包

4,通过查看任务启动时加载的Jar包发现其中有的jar包版本和现有jar包版本不一致

三、解决方法

1,将Spark中配置文件指定的HDFS上Jars地址中的Jars去除掉,并重新上传正确的Jars文件

2,删除命令:  sudo  -u  hive hadoop fs -rmr  hdfs://centos1/spark/jars

3,上传命令:  sudo  -u  hive hadoop fs -put  /opt/spark/jars/*  hdfs://centos1/spark/jars

上一篇下一篇

猜你喜欢

热点阅读