Büyük Veri (Bigdata) Çözümleri

Forbes’e göre, her gün yaklaşık 2,5 quintilyon bayt veri üretiliyor. Bununla birlikte, bu sayının sonraki yıllarda sürekli artması beklenmektedir (Günümüzde depolanan verilerin% 90’ı son 3 yıl içinde üretilmiştir.)

Büyük Veriyi ilişkisel veritabanlarında depolanan diğer büyük miktardaki verilerden farklı kılan şey onun heterojenliğidir. Veriler farklı kaynaklardan geliyor ve farklı formatlar kullanılarak kaydedilmektedir.

Verileri formatlamak için üç farklı yöntem yaygın olarak kullanılır:

• Yapılandırılmamış = Örgütlenmemiş veriler
• Yarı yapılandırılmış = Veri sabit olmayan (JSON)
• Structured = Veri yapısal formatı (RDBMS)

Büyük Veri üç özellik tarafından tanımlanır:

1. Hacim = Büyük miktarda veri nedeniyle, verileri tek bir makinede saklamak mümkün değildir. Hata toleransı sağlamak için verileri birden fazla makinada işlemek gerekir
2. Variety = Farklı şemalar kullanılarak biçimlendirilmiş çeşitli kaynaklardan gelen verilerle çalışılır
3. Velocity = Yeni veriler hızlı bir şekilde saklanır ve işlenir

Harita indirgeme 

Çok miktarda veri ile çalışırken ve kaynaklarımız tükendiğinde, iki olası çözüm vardır: yatay veya dikey ölçekleme. Yatay ölçeklemede bu sorunu aynı kapasitede daha fazla makine ekleyerek ve iş yükünü dağıtarak çözüyoruz. Dikey ölçeklendirme kullanıyorsanız, bunun yerine makinemize daha fazla hesaplama gücü ekleyerek ölçekleniriz (örn. CPU, RAM). 

Dikey ölçeklendirmenin, yatay ölçeklendirmeye göre yönetimi ve kontrolü kolaydır ve göreceli olarak küçük boyutlu bir sorunla çalışırken etkin olduğu kanıtlanmıştır. Bununla birlikte, yatay ölçeklendirme genellikle büyük bir sorunla çalışırken dikey ölçeklendirmeden daha ucuz ve daha hızlıdır.

MapReduce, yatay ölçeklendirmeye dayanmaktadır. MapReduce’da Paralelleştirme için Big Data ile uğraşmayı kolaylaştıran bir bilgisayar kümesi kullanılmıştır.

MapReduce’da giriş verilerini alıyor ve birçok bölüme ayırıyoruz. Her parça daha sonra işlenmek üzere farklı bir makineye gönderilir ve sonunda belirtilen bir grup işlevine göre toplanır .

Apache Spark 

Apache Spark çerçevesi, MapReduce’un bir geliştirmesi olarak geliştirilmiştir. Spark’ı rakiplerinden farklı kılan özellik, MapReduce’dan 100 kat daha hızlı olan yürütme hızıdır (orta düzey sonuçlar saklanmaz ve her şey bellekte yürütülür).

Apache Spark yaygın olarak kullanılır:

1. Saklanan ve gerçek zamanlı verilerin okunması
2. Çok miktarda veri (SQL) önceden işleyin
3. Makine Öğrenimi kullanarak verileri analiz edin ve grafik ağları işleyin

Apache Spark, Python, R ve Scala gibi programlama dilleriyle kullanılabilir. Spark’ı çalıştırmak için bulut tabanlı uygulamalar yaygın olarak kullanılır; Amazon Web Servisleri, Microsoft Azure ve Veritabanları (ücretsiz bir topluluk sürümü sağlar) gibi.

Spark kullanırken, Büyük Veriler Esnek Dağıtılmış Veri Kümeleri (RDD’ler) kullanılarak paralelleştirilir. RDD’ler, Apache Spark’ın orijinal verilerimizi alan ve farklı kümeler (işçiler) arasında bölen en temel soyutlamasıdır. RRD’ler hataya dayanıklıdır; bu, çalışanlardan herhangi birinin başarısız olması durumunda kaybolan verileri kurtarabilecekleri anlamına gelir.

Dönüşümler, RDD’lerden yeni veri kümeleri oluşturur ve sonuç olarak bir RDD döndürür (örneğin, anahtar işlemlerle eşleme, filtreleme ve azaltma). Tüm dönüşümler tembeldir, bir eylem çağrıldığında sadece bir kez yapılır (bir yürütme haritasına yerleştirilir ve daha sonra bir Eylem çağrıldığında gerçekleştirilir).

Bunun yerine analiz sonuçlarımızı Apache Spark’dan almak ve Python / R uygulamamız için bir değer döndürmek için (örneğin, toplama ve alma işlemleri) eylemler kullanılır.

Anahtar / değer çiftlerini Spark ürününde saklamak için, RDS Çiftleri kullanılır. Çift RDD’ler, bir demet içinde depolanan iki RRD tarafından oluşturulur. Birinci anahtar elemanı, anahtar değerlerini saklamak için kullanılırken ikincisi, değer elemanlarını (anahtar, değer) depolamak için kullanılır.

Hadoop 

Hadoop, Java’da yazılmış ve çok miktarda veri üzerinde işlem yapmak için kullanılabilecek bir dizi açık kaynaklı programdır. Hadoop ölçeklenebilir, dağıtılmış ve hataya dayanıklı bir ekosistemdir.

• Hadoop YARN = İş yükünü bir makineler kümesi üzerine ayırarak sistemin kaynaklarını yönetir ve zamanlar.
• Hadoop Dağıtılmış Dosya Sistemi (HDFS) = Hataya dayanıklı, yüksek verim ve yüksek bant genişliği sunan, kümelenmiş bir dosya depolama sistemidir. Ayrıca, herhangi bir veri türünü mümkün olan herhangi bir biçimde saklayabilir.
• Hadoop MapReduce = Verileri bir veritabanından yüklemek, biçimlendirmek ve kantitatif analiz yapmak için kullanılır

Hadoop geleneksel olarak MapReduce’u geniş ölçekte kullanıma sunan ilk sistem olmuştur, ancak bugünlerde Apache Spark daha yüksek uygulama hızı sayesinde birçok şirketin tercih çerçevesidir.