2016-04-11 17 views
0

Bu nedenle, bir uygulama başlatıldığında Spark uygulamasında, uygulama için veri kümesini içeren bir RDD (örneğin, WordCount için sözcük veri kümesi) oluşturulur.RDD ve bölüm, Apache Spark

Şimdiye kadar ne anlamak RDD (örn haritası, reduceByKey, vb ...)

Ancak afaik, Kıvılcım bu veri kümesi için yapılmıştır WordCount bu kelime ve operasyonların bir koleksiyon olmasıdır Ayrıca, HDFS'den her uygulayıcı tarafından okunan HadoopPartition (veya genel olarak bölüm) vardır. Ve sürücüdeki bir RDD'nin de tüm bu bölümleri içerdiğine inanıyorum.

Peki, Spark'deki uygulayıcılar arasında nasıl bölünüyor? Her yönetici bu alt veri setini sürücüde RDD'ye göre daha az veri içeren tek bir RDD olarak mı alıyor yoksa her bir yürütücü bu bölümlerle ilgileniyor ve bunları doğrudan HDFS'den okuyor mu? Ayrıca, bölümler ne zaman oluşturulur? RDD oluşturulmasında mı?

cevap

0

RDD'nin anahtar-değer tabanlı olması şartıyla bölümlemeler yapılandırılabilir. Aynı bölüm içinde

  1. Tuples aynı makinede olması garanti edilir

    :

    3 ana bölümün özelliği vardır.

  2. Bir kümedeki her düğüm birden fazla bölüm içerebilir.
  3. Toplam bölüm sayısı yapılandırılabilir, varsayılan olarak tüm yürütücü düğümlerindeki toplam çekirdek sayısı için olarak ayarlanmıştır.

Kıvılcım bölümleme iki tür destekler:

  1. Hash Bölümleme
  2. Menzil Bölümleme
Kıvılcım HDF'ler bir dosyayı okur

, tek giriş bölünme tek bir bölüm oluşturur . Girdi bölme, bu dosyayı okumak için kullanılan Hadoop InputFormat tarafından ayarlanır. rdd.repartition (x) öğesini çağırdığınızda, rdd - x bölümlerinde sahip olmak istediğiniz N bölümlerinden gelen verilerin karıştırılması gerçekleştirilir, bölümleme yuvarlak robin esasına göre yapılır.

Lütfen daha fazla bilgi here ve here

İlgili konular