为什么新的Job()抛出java.lang.IllegalStateException:作业状态为DEFINE而不是RUNNING?

时间:2014-12-19 21:56:31

标签: scala apache-spark

尝试将数据写入Parquet中的Spark 1.1.1

我关注A Powerful Big Data Trio: Spark, Parquet and Avro作为模板。本文中的代码使用作业设置来将方法调用到ParquetOutputFormat API。

scala> import org.apache.hadoop.mapreduce.Job 
scala> val job = new Job() 
java.lang.IllegalStateException: Job in state DEFINE instead of RUNNING
    at org.apache.hadoop.mapreduce.Job.ensureState(Job.java:283)
    at org.apache.hadoop.mapreduce.Job.toString(Job.java:452)
    at scala.runtime.ScalaRunTime$.scala$runtime$ScalaRunTime$$inner$1(ScalaRunTime.scala:324)
    at scala.runtime.ScalaRunTime$.stringOf(ScalaRunTime.scala:329)
    at scala.runtime.ScalaRunTime$.replStringOf(ScalaRunTime.scala:337)
    at .<init>(<console>:10)
    at .<clinit>(<console>)
    ...

1 个答案:

答案 0 :(得分:0)

Spark作业和MapReduce作业不同,Spark使用MapReduce的InputFormat在HDFS中获取输入。

从堆栈跟踪中,错误来自toString方法。尝试使用spark-submit运行作业,而不是使用spark-shell。它应该从toString解决错误。