Spark Shell异常Job in state DEFINE instead of RUNNING
Spark-Shell测试把数据写入Hbase遇到异常
异常分析
现象
1 | 从日志报错分析,Job状态不对 |
原因
1 | 在Spark shell模式下 |
解决办法
解决方法一:
不要再spark-shell中执行上面代码,使用spark-submit来提交执行代码,这样就不会检查状态
解决方法二:
使用lazy
来初始化定义对象,这样会只有job对象被真正使用的时候才会初始化
1 | lazy val job = Job.getInstance(sc.hadoopConfiguration)lazy val job = Job.getInstance(jobConf) |
解决方法三:
将Job对象封装到类里面,这样就不会调用Job的toString方法,这样就可以避免出现异常
1 | class JobWrapper(sc:SparkContext){ val job = Job.getInstance(sc.hadoopConfiguration); } |