Büyük veri ve Hadoop – 1 – Çözüm
BT dünyasında büyük veri ve Hadoop konusunu duymayan kalmamıştır. Herkesin dilindeki bu kavramı bende ardarda birkaç yazıyla özetlemeye çalışacağım. Öncelikle bir çözüm olarak Hadoop hangi problemi çözmeyi hedefliyordan başlayacağız.
Telekom, Finans, Sigorta, Kamu, E-ticaret, Enerji, Savunma sanayi gibi yoğun kullanım verisi, müşteri hareketleri, web logu, gözlem verileri, uygulama ve sistem logları üreten sektörler ilk planda büyük verinin hızlı işlenmesine en çok ihtiyaç hissedecek sektörlerdir. Sektör bazında bir örnek verirsek telekom sektöründen bir şirket düşünelim;
Milyonlarca aboneye ait günlük milyarlarca konusma detayları kaydı,
GSM ağındaki santral, cihaz ve sistemlerden GB'larca akan log dosyaları
Web sitesi, sosyal ağlar, çağrı merkezi aracılığı ile gelen milyonlarca farklı formatta günlük temas kaydı
Gecikmeye tahammülü olmayan iş birimleri, ihtiyaçları için arka tarafta bu verileri toplayan, işleyen, bağlantıları kuran sistem gereksinimleri
Yukarıdaki büyük veriyle ilgili ihtiyaçlara bugüne kadarki klasik yaklaşımlar; güçlü bir makine alırım, en iyi veri dönüşümünü yapan yazılımı alırım, en iyi veritabanını kullanırım şeklindeydi. Hadoop işte bu yaklaşımı kökten değiştirdi. Artık Hadoop çözümüyle güçlü tek bir makine kavramı yok sıradan çok makine var, tek bir süreç yok paralel süreç var, veri tek bir yerde değil tüm ağda dağıtılmış durumda, süreç sırasında veri taşınmıyor kod yani süreç ilgili yere taşınıyor.
Hadoop hem güçlü makinelere yatırım yapmadan eldeki makineleri kullanarak maliyetleri azaltıyor hem de paralel işleme ile daha çok veriyi daha kısa sürede işleyebiliyor. Hadoop'un ilk planda en yaygın kullanım olanağı bulacağı alanlardan biriside Relational veritabanlarının yeterli olmadığı noktalar olacak. Yeterli olmadı ile kastetdiğim özel veri formatlarının işlenebilmesinden daha ziyade verinin büyüklüğü ve processing'in maliyeti. Nedir bu konudaki Hadoop'lu çözüm alanları birkaç örnek verirsek;
– Çok büyük blok halindeki verileri RDBMS'i besleyen flow'dan ayırarak Hadoop'da paralel olarak işlemek ve özet sonucu daha sonra RDBMS'e yazmak
– Dönüştürme işlemlerinde karşılaşılan büyük çaplı tabloların (milyar mertebesinde satır sayısı) sıralanması gibi bazı zor problemlerde Hadoop'un dağıtık paralel işleme gücünü kullanmak
– Geriye dönük arşiv sorguları gibi RDBMS'de tutulamayacak kadar büyük geçmiş verilere ihtiyaç duyan istekleri Hadoop'a yönlendirmek
Türkiye'de de giderek artan veriye baglı olarak Hadoop ile ilk projelerin bunlar olabileceğini düşünüyorum.. Hadoop ile ilgili eklemek istediğimde bir diğer konuda bu alanda çözüm geliştirecek kişi veya şirketlerin sahip olması gereken profili ile ilgili. Bunlar;
– Veriyi iyi tanıma ve anlama
– Linux-Unix ortamına hakim olma
– İleri seviyede Java bilgisi
– MapReduce'dan kaçmayacak gerektiğinde işin içine girecek cesarette olma
– Paralel dağıtık programlama tecrübesi
– Batch joblar işyükü otomasyonu bilgisi
Görüldüğü gibi Hadoop konusu kompleks bir ortam ve bu ortamı etkin bir şekilde yönetmek için pek çok bilgi birikimini birarada gerektiriyor. Şu anda pek çok kurum ve kişinin mesafeli durmasının altındada bu kompleks ortamla başetmenin zorluğu yatıyor. Kurumlar da bu alanda birlikte çalışabilecek, aynı dili konuşan, etkin ve örnek bir çözüm üretebilecek şirket arayışındalar.
İkinci yazımda Hadoop'un ne olup ne olmadığı ile devam edeceğiz.