Ich erstellte Hive-Tabelle mit 10 GB CSV-Datei mit Farbton. Dann versucht, SQL-Abfrage auszuführen. Während der Verarbeitung von Daten spricht man lange Zeit mehr als 2 Stunden. Kann mir jemand sagen, ob das das Funkenproblem ist? oder ich habe etwas falsch gemacht.
Ich versuchte alle möglichen Kombinationen wie die Anzahl der Executoren, Kerne und Executors Speicher ändern.Warum ist die Quantilberechnung mit hiveContex in Spark sehr langsam?
--driver-memory 10g\ --num-executors 10\ --executor-memory 10g\ --executor-cores 10\
I getestet durch num-Vollstrecker, wie 10, und gleiche 15,20,50,100 für Gedächtnis und Kern zu ändern.
Über den Cluster gesprochen hat es 6 Knoten 380+ Kerne und 1 TB Speicher.
My SQL query: select percentile_approx(x1, array(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)) as x1_quantiles, percentile_approx(x2, array(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)) as x2_quantiles, percentile_approx(x3, array(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)) as x3_quantiles from mytest.test1
Code ist ziemlich einfach
val query= args(0)
val sparkConf= new SparkConf().setAppName("Spark Hive")
val sc = new SparkContext(sparkConf)
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
sqlContext.cacheTable(" mytest.test1")
val start = System.currentTimeMillis()
val testload=sqlContext.sql(query)
testload.show()
val end = System.currentTimeMillis()
println("Time took " + (end-start) + " ms")
Dies half mir, das Problem und den Weg zu lösen. Vielen Dank @ Zero323 –