2015-03-17 20 views
5

cassandra kıvılcım soketini kullanarak Sunucu tarafı veri seçimi ve filtrelemeyi kullanmak istiyorum. Şunları yapmamız ilgi SonraCassandra veri toplama Spark tarafından

CREATE TABLE project1(  
     year int, 
     month int, 
     load_balancer int, 
     day int, 
     hour int, 
     estimation_time timestamp, 
     sensor_id int, 
     value double, 
     ... 
     PRIMARY KEY ((year, month, load_balancer), day, hour, estimation_time, sensor_id) 

: Aslında biz Önerdiğim vb, saat, gün, ay aşağıdaki veri modelini kullanarak bu veriler toplama üzerinde ilgilenen, değerler her 1'leri göndermek birçok sensörleri 2014-Aralık'taki veri toplama işini IN (0,1,2,3) yük dengeleyici ile alınız. Yani 4 farklı bölüm.

cassandra kıvılcım bağdaştırıcısı 1.1.1 sürümünü kullanıyoruz ve tüm değerleri toplayarak saat başına toplanan sorguları bir araya getirdik.

4,341,390 tuples'in işlem süresi için, kıvılcım sonucu döndürmek 11 dakikanızı alır. Şimdi sorun, 5 düğümlerini kullanıyor olmamızdır, ancak kıvılcımı yalnızca bir işçiyi görevini yürütmek için kullanmaktadır. Performansı arttırmak için lütfen sorgu veya veri modeline bir güncelleme önerebilir misiniz?

+1

Herhangi bir çözüm buldunuz mu? – galex

+0

Sensor_id'i bir bölüm anahtarı olarak kullanırken tüm düğümler kullanılacaktır (yaklaşık 500 sensörümüz var). Ancak, önerilen modelde neden 4 iş olmadığını bilmiyorum. Aynı düğümde oldukları için olabilirler! – Wassim

+1

Verilerinizin yalnızca 1 düğümde saklandığını doğruladınız mı? (Bu garip ve dengesiz sesler) ayrıca kıvılcım kodunuzu da gösterebilir mi? – HashtagMarkus

cevap

0

Spark Cassandra Bağlayıcısı bu özelliğe sahiptir, SPARKC-25. Değerlerle birlikte isteğe bağlı bir RDD oluşturabilir ve daha sonra Cassandra tablosundan veri almak için bir anahtar kaynağı olarak kullanabilirsiniz. Veya başka bir deyişle - Cassandra RDD'ye rastgele bir RDD'ye katılın. Sizin durumunuzda, bu keyfi RDD, farklı yük dengeleyici değerlerine sahip 4 tuple sahip olacaktır. Daha fazla bilgi için documentation'a bakın. SCC 1.2 son zamanlarda piyasaya sürüldü ve muhtemelen Spark 1.1 ile uyumludur (Spark 1.2 için tasarlanmış).