2016-01-19 7 views
2

Quelle est la meilleure façon de partager des données RDD spark entre deux jobs spark.Comment partager les données de Spark RDD entre deux applications

J'ai un cas où le travail 1: Spark Sliding fenêtre Streaming App, va consommer des données à intervalles réguliers et la création de RDD. Ceci nous ne voulons pas persister au stockage. Tâche 2: tâche de requête accédant au même RDD créé dans le travail 1 et générant des rapports.

J'ai vu peu de requêtes où ils proposaient SPARK Job Server, mais comme il s'agit d'un open source pas sûr si c'est une solution possible, mais des pointeurs seront d'une grande aide.

merci!

Répondre

2

La réponse courte est que vous ne pouvez pas partager les RDD entre les travaux. La seule façon de partager des données est d'écrire ces données dans HDFS, puis de les insérer dans l'autre travail. Si la vitesse est un problème et que vous souhaitez conserver un flux constant de données, vous pouvez utiliser HBase, ce qui permettra un accès et un traitement très rapides à partir du deuxième travail.

Pour avoir une meilleure idée que vous devriez regarder ici:

Serializing RDD

0

Selon le document officiel décrit:

Notez qu'aucun des modes offrent actuellement le partage de la mémoire dans toutes les applications. Si vous souhaitez partager des données de cette manière, nous vous recommandons d'exécuter une application serveur unique pouvant répondre à plusieurs demandes en interrogeant les mêmes RDD. http://spark.apache.org/docs/latest/job-scheduling.html

0

Vous pouvez RDD à travers différentes applications utilisant Apache Ignite. Apache ignite fournit une abstraction pour partager les RDD à travers lesquels les applications peuvent accéder aux RDD correspondant aux différentes applications. En outre, Ignite prend en charge les index SQL, contrairement à Spark natif. Veuillez consulter https://ignite.apache.org/features/igniterdd.html pour plus de détails.

+0

Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (// meta.stackoverflow.com/q/8259) d'inclure les parties essentielles de la réponse ici, et de fournir le lien pour référence. – manetsus