Ich führe ein Spark-Streaming-Programm, das einen mapreduce-Job verwendet, um Dateien im AvroParquet-Format zu schreiben. Das Programm funktioniert ordnungsgemäß, wenn es auf dem Cluster ausgeführt wird, schlägt jedoch lokal fehl.mapreduce Job() hat 'java.lang.IllegalStateException' Ausnahme ausgelöst. Kann nicht ausgewertet werden org.apache.hadoop.mapreduce.Job.toString()
Der Code
import org.apache.hadoop.mapreduce.Job
val job = Job.getInstance()
wirft die folgende Ausnahme:
Method threw 'java.lang.IllegalStateException' exception. Cannot evaluate org.apache.hadoop.mapreduce.Job.toString()
Hier ist der Code verwendet, um die Funken Streaming-Job zu übergeben:
SparkConf conf = new SparkConf(false)
.setMaster("local[2]")
.setAppName("test");
SparkContext sc = new SparkContext(conf);
MyClass job = new MyClass();
job.run();
class MyClass(){
protected def run(): Unit ={
val ssc: StreamingContext = createStreamingContext(parameters)
// here there is something like
// stream.map(func1).reduceBykey(func2).foreachRDD(rdd => {val job = Job.getInstance()})
ssc.start()
}
Senden Sie den Auftrag auch lokal mit spark-submit ein? –
Nein, ich habe die Frage bearbeitet, um sie zu erklären. – nicola