windows - Indsend et gnistprogram, der forbinder til en Cassandra-database fra IntelliJ IDEA

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg fandt et lignende spørgsmål her: Sådan indsendes kode til en fjernsynsklynge fra IntelliJ IDEA


Jeg ønsker at indsende en Spark applikation til en klynge, hvor Spark and Cassandra er installeret.


Mit program er på et Windows-operativsystem. Ansøgningen er skrevet i IntelliJ ved hjælp af:



  • Maven

  • Scala

  • Spark



Nedenfor er et kodestykke:


val spark = SparkSession
  .builder().master("spark://...:7077") // the actual code contains the IP of the master node from the cluster
  .appName("Cassandra App")
  .config("spark.cassandra.connection.host", cassandraHost) // is the same as the IP of the master node from the cluster
  .getOrCreate()

val sc = spark.sparkContext

val trainingdata = sc.cassandraTable("sparkdb", "trainingdata").map(a => a.get[String]("attributes"))


Klyngen indeholder to noder, som Ubuntu er installeret på. Desuden er Cassandra og Spark installeret på hver knudepunkt.


Når jeg bruger local[*] i stedet for spark://...:7077 virker det fint. Men når jeg bruger den version, der er beskrevet i dette indlæg, får jeg den næste fejl:


WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources


På klyngen er fejlen detaljeret yderligere:


java.lang.ClassNotFoundException: MyApplication$$anonfun$1
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)


Jeg vil også bemærke, at applikationen skrevet på Windows bruger Spark som en Maven afhængighed.


Jeg vil gerne vide, om det er muligt at indsende denne gnistansøgning fra Windows-noden til Ubuntu-klyngen, og hvis det ikke er muligt, hvilket alternativ skal jeg bruge. Hvis jeg skal oprette en jar fra Scala-objektet, hvilken tilgang skal jeg bruge kalde klyngen fra IntelliJ?

Bedste reference


For at lancere din ansøgning skal det fortsætte med klynge med andre ord skal din pakkede krukke opholde sig eller i HDFS eller i hver knudepunkt på samme sti. Derefter kan du bruge ssh-klient eller RESTfull-grænseflade eller hvad som helst, der gør det muligt at udløse gnist-sende kommando. [8]