2016-07-29 8 views
0

Ich habe den folgenden Code, der die eindeutigen Telefonnummern erhält, und Union aller Anrufe erstellt.Spark RDD Union OOM-Fehler bei der Verwendung von Einzelmaschine

//Get all the calls for the last 24 hours for each MSISDN in the hour 
val sCallsPlaced = (grouped24HourCallsPlaS).join(distinctMSISDNs) 
val oCallsPlaced = (grouped24HourCallsPlaO).join(distinctMSISDNs) 
val sCallsReceived = grouped24HourCallsRecS.join(distinctMSISDNs) 
val oCallsReceived = grouped24HourCallsRecO.join(distinctMSISDNs) 

val callsToProcess = sCallsPlaced.union(oCallsPlaced) 
           .union(sCallsReceived) 
           .union(oCallsReceived) 

Die Funken defaults.conf Datei hat die folgenden:

spark.driver.memory=16g 
spark.driver.cores=1 
spark.driver.maxResultSize=2g 

spark.executor.memory=24g 
spark.executor.cores=10 

spark.default.parallelism=256 

Die Frage ist, in der Lage, Funken 50G von Daten zu verarbeiten, mit einer 256G-Maschine, mit Hadoop-Dienstleistungen (NameNode, Datenknoten, sekundärer Knoten), Garn und HBase, die auf derselben Maschine laufen.

Hbase (HMaster, HQuorumPeer und HRegionServers) benötigen jeweils etwa 20G.

Gibt es auch einen schnelleren Weg als die Verwendung von "Union" in Spark.

Antwort

0

Wie viele Partitionen gibt es für jede RDD? Wie sucht der Serde nach den Aufzeichnungen?

Wie bei der relationalen Algebra, führen Sie zuerst die Vereinigungen durch und führen Sie dann die Verknüpfung durch.

Verwandte Themen