2015-10-07 38 views
5

Kıvılcım akışındaki gruplar RDD gruplarından oluşur. 3 RDD'lerin yığın kümesidir. Ayrıca, kıvılcım dökümanları, her 200 ms'de bir blokun her bir alıcı tarafından oluşturulduğunu ve bölümün bloğa ayrıldığını belirtmektedir.Kıvılcımlarda RDD bölümleme Akış Akışı

1 saniyede 3 adet RDD toplu işim var, 200ms'lik bir değer varsa 5 bloklu.

RDD, çalışan düğümleri arasında nasıl bölümlenecek, bölümlendirilecek tek bir RDD veya tam bir toplu iş olacaktır.

Yanlış şekilde almış olabilirim. Lütfen bana kılavuzluk edin

cevap

13

Bir akış kümesi bir RDD'ye karşılık gelir. Bu RDD'nin n bölümleri olacaktır, burada n = parti aralığı/blok aralığı. Standart 200ms blok aralığına ve 2 saniyelik parti aralığına sahip olduğunuzu varsayalım, sonra 10 bölümünüz olacak. Bloklar bir alıcı tarafından oluşturulur ve her alıcı bir ana bilgisayara ayrılır. Yani, bu 10 bölüm tek bir düğümde ve ikinci bir düğüme çoğaltılır.

RDD işleme için gönderildiğinde, görevi yürüten ana bilgisayarlar bu ana bilgisayardaki verileri okuyacaktır. Aynı düğüm üzerinde yürüten görevler "NODE_LOCAL" konumluluğuna sahip olurken, diğer düğümlerde yürütülen görevler "HERHANGİ" bir konuma sahip olacak ve daha uzun sürecektir. Bu nedenle, paralel işlemeyi iyileştirmek için, birkaç alıcının ayrılması ve daha fazla işlem için tek bir DStream oluşturmak için birleşimi kullanmanız önerilir. Bu şekilde veriler paralel olarak birkaç düğüm tarafından tüketilecek ve işlenecektir.

+0

Teşekkür ederiz @maasg – dexter

+0

Teşekkürler @maasg. Bunu doğrulamak için, eğer birden fazla alıcıya sahipsek, o zaman birden fazla DStream'imiz vardır ve her bir DStream bir RDD'ye karşılık gelir. Yani, birden fazla Dstream'i birleştirdiğimizde, tek bir DStream elde ederiz. Bu DStream birden fazla RDD veya tek RDD'den mi oluşuyor? –

+0

@ DineshSachdev108 Bu tanım birliği() "DStream ve otherDStream kaynağındaki elemanların birleşimini içeren yeni bir DStream döndürür" ifadesiyle, sonuç bir dStream olacaktır. Ve tanım gereği bir "DStream, RDD'ler dizisi olarak temsil edilir. Bunun anlamı, alıcının kaç tane parti aldığına bağlı olarak birden fazla RDD içereceği anlamına gelir. – bigdatamann

0

Bu, daha yeni bir kıvılcım versiyonu için geçerli mi?

an article numaralı belgeyi okudum, burada kıvılcımdaki birden fazla alıcıya sahip olan senaryo güncel değil ve bunun yerine yeni doğrudan kafka api (createDirectStream) sizin için her şeyi halledecektir.