Büyük Veri Yolculuğu. Tayfun YALÇINKAYA Kadir Has Üniversitesi Mühendislik ve Doğa Bilimleri Fakültesi Bilgisayar Mühendisliği

Benzer belgeler
Büyük Veri de Türkiye den Uygulama Örnekleri Dr. Güven Fidan

Büyük Veri Analitiği (Big Data Analytics)

Büyük veriye genel bakış, mimari ve çözümler

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

BÜYÜK VERİ. Abdulkadir ŞAN Proje Yöneticisi 7/1/2014 VERİ SİSTEMLERİ. Anayurt Güvenliği Md. Yrd. Metin Madenciliği ve Kaynaştırma Sistemleri

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v Mustafa Atanak Sefai Tandoğan Doç. Dr.

MongoDB. Doğan Aydın. Eylül, 2011

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Data Science Boot Camp

IOT NEDİR? Bölüm 1. Internet of Things ekosistemi altında donanım, programlama, veri tabanı, veri analizi gibi alt yapılar yer almaktadır.

UHeM ve Bulut Bilişim

Veri Yönetiminde Son Nokta. Sedat Zencirci, Teknoloji Satış Danışmanlığı Direktörü, Orta Asya ve Türkiye

SİSTEM ANALİZİ VE TASARIMI. Sistem Analizi -Bilgi Sistemleri-

İçerik. Apache Hadoop Project

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Farklı Mobil Platformlar Üzerinde Servis Tabanlı Mimari(SOA) Yaklaşımı: Elektronik Uçuş Çantası Vaka Çalışması

BULUT BİLİŞİM VE BÜYÜK VERİ ARAŞTIRMA LABORATUVARI. Ekim 2017

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Zekeriya Beşiroğlu TURKISH ORACLE USER GROUP. Oracle Cloud G nin GİDİŞİ. C nin GELİŞİ. Bilginc IT Academy /Oracle University Istanbul

İşletim Sistemleri (Operating Systems)

SDD Dökümantasyonu Versࠀyon 1.0. Movࠀe Predࠀctࠀon Orhan Özgün Ergen Ahmet Saday Berkay Erken

AKILLI TATIL PLANLAMA SISTEMI

Yapısal Olmayan Verinin Potansiyelini Açığa Çıkarın

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Yazılım Mühendisliğine Giriş 2018 GÜZ

Teknoloji Trendleri, Veri Merkezleri ve Uyum

Cloudera Training for Apache HBase

Bulut Bilişim. Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Hizmet Odaklı Mimariye Dayanan İş Süreçleri Yönetimi Sistemi

Büyük Veri. Yrd. Doç. Dr. Özgür Yılmazel Gökhan Çapan Anadolu Üniversitesi

C++ Dersi: Nesne Tabanlı Programlama

Veritabanı. Ders 2 VERİTABANI

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Üst Düzey Programlama

Yrd. Doç. Dr. Büşra ÖZDENİZCİ IŞIK Üniversitesi Enformasyon Teknolojileri Bölümü

WINDESKCONCENTO. sıgnum. Kurumsal İş Süreçleri Uygulamaları. windesk.com.tr

Beykent Üniversitesi Mühendislik ve Mimarlık Fakültesi Yazılım Mühendisliği. Movie Prediction

İleri Veritabanları (COMPE 502) Ders Detayları

EMC Forum Yazılım Temelli Veri Depolama Moro Hekim Sistem Mühendisi

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

ALGORİTMA VE PROGRAMLAMA II

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

CloudPro Server Backup. Güçlü bir Veri Yedekleme Çözümü ile İş Sürekliliğinizde Devamlılığın Anahtarı

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

PAPERWORK TEKNİK MİMARİ

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

Red Hat Jboss Data Grid: Uygulamalarınıza Süper Güç Katın!

Big Data (Buyuk Veri) Kamu ve Ozel Sektore Etkileri

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

İşletim Sistemlerine Giriş

Büyük ve Hızlı Veri ile Değer Yaratmak

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 2 ( yılı öncesinde birinci

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Veri Organizasyonu ve Yönetimi BIL

10 yıllık sektör deneyimimiz ve yazılım teknolojileri alanında uzmanlaşmış eğitmen kadromuzla, size, ekibinize ve yazılım kültürünüze değer katacak

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

MOBIL UYGULAMA GELIŞTIRME

Oracle OpenWorld den Yansımalar. Sedat Zencirci Teknoloji Satış Danışmanlığı Direktörü Türkiye ve Orta Asya 08 Kasım 2016

Kültür Varlıklarının Web Otomasyonu

Servis olarak Altyapı

Üst Düzey Programlama

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

worksforce Saha Satış Otomasyon Çözümü

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 2002

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Servis Yönelimli Mimari ve İş Süreç Yönetimi (SE 564) Ders Detayları

İRİSTEN KİMLİK TANIMA SİSTEMİ

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Bulut Bilişimin Hayatımızdaki Yeri İnternet Haftası Etkinlikleri 17 Nisan Yard.Doç.Dr.Tuncay Ercan

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

08225 AĞ TEMELLERĠ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 20 EKi Salı, Çarşamba

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

Veritabanı Uygulamaları Tasarımı

MÜFREDAT DERS LİSTESİ

Yaz.Müh.Ders Notları #6 1

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 4423

Yrd. Doç. Dr. Caner ÖZCAN

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

UNIVERSAL BİLGİ TEKNOLOJİLERİ

MOBİL UYGULAMA GELİŞTİRME

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

BM-311 Bilgisayar Mimarisi

ÜRETİM SÜREÇLERİNİ GÖZLEMLEMEK VE KONTROL ETMEK İÇİN KABLOSUZ ÇÖZÜM

AKADEMİK BİLİŞİM 2013

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL. R. Orçun Madran Atılım Üniversitesi.

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

Anahtar Kelimeler: Hadoop, Map Reduce, Hdfs, Map Reduce Performans Parametreleri,

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

Mobil Cihazlardan Web Servis Sunumu

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

Transkript:

Büyük Veri Yolculuğu Tayfun YALÇINKAYA Kadir Has Üniversitesi Mühendislik ve Doğa Bilimleri Fakültesi Bilgisayar Mühendisliği tayfunykaya@gmail.com Prof. Dr. Hasan DAĞ Kadir Has Üniversitesi Mühendislik ve Doğa Bilimleri Fakültesi Yönetim Bilişim Sistemleri Bölümü hasan.dag@khas.edu.tr Özet Analitiğinin yapılmasına ihtiyaç duyulan veri her geçen saniye çok büyük bir hızla artmaya devam etmektedir. Bu gelişim çok hızlı gerçekleşmesine karşın veri analitiği konusunda henüz bir standart olgunlaşmış değildir. Bu çalışma, büyük veri analitiği için yol haritası olarak bir model önermektedir. Önerilen model, büyük veri alanında karşılaşılan sıkıntıları ve kısıtları doğru bir yaklaşım ile ele almayı amaçlamaktadır. Ayrıca söz konusu model, verinin nasıl konumlandırılacağı, analitiğinin hangi şekilde yapılacağı, kaynaktan hedefe bir yolculuk olarak verinin rotası, bu rotada verinin uğradığı duraklar, analitiği yaparken hangi teknolojileri kullanmak gerektiğini ve onların birbirleri ile olan entegrasyonunu içermektedir. Anahtar Kelimeler: büyük veri, analitik, referans model, büyük veri analitiği teknolojileri Abstract Big Data Journey Data needing analytics has been increasing amazingly fast all over the world at every second. Although this growth is rapid, the standardization regarding data analytics is not matured yet. This research recommends a model as a roadmap of big data analytics. This model also provides correct approach to boundaries and problems of big data analytics. Keywords: big data, analytics, reference model, big data analytics technologies 1) Giriş Büyük veri analitiği konusunda temel bazı başlıkların çok net ortaya konarak iyi anlaşılması gerekmektedir. Bu çalışma, büyük veri analitiği için yol haritası olarak bir model önermektedir. Önerilen model ilgili konuları aşağıdaki başlıklar ile açıklığa kavuşturmayı amaçlamaktadır. Kaynaktan hedefe bir yolculuk olarak verinin rotası, bu rotada verinin uğradığı duraklar, verinin analitiğinde kullanılan teknolojiler ve onların birleştirilmesi. Büyük veri analitiği için önerilen model, çalışmamızın ikinci bölümünde anlatılmaktadır. Söz konusu model büyük veri analitiği perspektifinden bakıldığında, standartlaşmaya olanak sağlayacak şekilde ortaya konmaya çalışılmıştır. Büyük veri analitiğini üç temel kategoriye ayırmak mümkündür: Zaman içinde biriken verinin analitiğinin yapılması, gerçek zamanlı olarak verinin analitiğinin yapılması ve gerçek zamana çok yakın bir zaman aralığında verinin analitiğinin yapılması. Doğru bir kategoride ilerleyebilmek için, veri yolculuğunun rotasını çok iyi tanımlamak gerekmektedir. Bu çalışmanın üçüncü bölümü, veri yolculuğunun rotasını açıklamaktadır. Büyük veri analitiğinde kullanılan birçok teknoloji açık kaynak kodlu projeler olmasının yanında, birçoğu da ticari proje kapsamında Oracle, Cloudera, IBM vb. hizmet sağlayıcıları tarafından kullanıcılara hizmet olarak sunulmaktadır. Ticari çözümler, açık kaynak kodlu çözümlerin üzerine geliştirilen ürünler olduğundan, temelinde açık kaynak kodlu projeler bulunmaktadır. Bu yüzden önerilen modelin içerisinde açık kaynak kodlu projeler ele alınmıştır.

Büyük veri analitiğinde kullanılan teknolojiler ve onların entegrasyonu çalışmanın dördüncü bölümünde yer almaktadır. Çalışmamızın son bölümünde gelecekteki çalışmalarımız ve bu çalışmadan çıkarılacak sonuçları bulabilirsiniz. 2) Büyük Veri Analitiği için Referans Model Büyük veri analitiğinde herhangi bir uluslararası standart bulunmadığından, Apache nin Hadoop projesi bu anlamda firmalar tarafından kabul görmüş de-fakto bir standart haline gelmiştir (Dittrich, Quian eruiz, 2012). Bunun yanında Hadoop sadece geçmiş veri analitiğinde kullanıldığından ve bugün artık büyük veri analitiği tek başına geçmiş verinin analitiğinden ibaret olmadığından, büyük veri analitiğinde henüz olgunlaşmayan standartlaşmaya gidebilmek için genel bir referans model tanımlamaya ihtiyacımız vardır. Söz konusu model her anlamda büyük verinin açık noktalarını ele alacak bir model olmalıdır. Literatüre bakıldığında, referans model olarak konuyu çok genel bir bakış açısı ile ele alan bazı çalışmaların bulunduğu görülebilir. Bu çalışmaya temel oluşturmak amacı ile referans olarak kabul edilen model NIST (Amerikan Teknolojiler ve Standartlar Enstitüsü) referans modelidir (NIST BD Public Working Group, 2014). Söz konusu referans modeli, büyük veri analitiğini genel bakış açısı ile üç seviyeye ayırmaktadır. Söz konusu seviyeler şu şekilde sıralanabilir; Servis olarak altyapı (IaaS - Infrastructure as a Service), servis olarak platform (PaaS - Platform as a Service) ve servis olarak yazılım (SaaS - Software as a Service). Bu seviyeler, büyük veri ile ürün geliştirme süreci için en uygun yaklaşımı ortaya koymaktadır. Bu çalışmamızda önerilen model, referans olarak kabul ettiğimiz NIST referans modelinin orta (PaaS) ve üst (SaaS) seviyesinin detaylarını ortaya koymaktadır. Görsel 1.1. NIST (National Institute of Standards and Technology) Büyük Veri Referans Mimarisi (NIST BD Public Working Group, 2014) 3) Orta (PaaS) Seviyede Büyük Verinin Yolculuğu Büyük veri analitiğinde üç tip veri analitik yöntemi bulunmaktadır: Geçmiş verinin analitiği, gerçek zamanlı (anlık) akan verinin analitiği ve gerçek zamanlıya yakın olarak yapılan veri analitiği. Her bir analitik yöntemi, kendine özgü farklı teknolojiler ve farklı bir veri

yolculuğu rotası içermektedir. Büyük veri analitiğinde, genel fikri ortaya koymak anlamında her üç veri analitik yönteminde, verinin rotasını gösteren Görsel 2.1. konunun anlaşılmasına yardımcı olacaktır. Görsel 2.1. önerilen modelde büyük verinin yolculuğu Modelin en alt seviyesinde, kaynağında doğan veri çeşitli araçlar ile orta seviyeye alınarak yolculuğunu devam ettirir. Görsel 2.1. in sağ tarafında bulunan NoSQL ve Hadoop, geçmiş büyük veri analitiği için kullanılan çözümleri temsil etmektedir. Bellek içi veri tabanları, gerçek zamanlıya yakın büyük veri analitiği için kullanılırken, gerçek zamanlı büyük veri analitiğinin rotası görselin sol tarafında gösterilmektedir. Nihai olarak her üç rotanın sonunda elde edilen analitik sonuçları görselleştirme teknolojileri ile son halini alır. 3.1 Geçmiş Büyük Verinin Analitiği Veri, herhangi bir NoSQL (Cassandra, MongoDB vb.) veri tabanında ya da veri setleri halinde ve dosya sistemi üzerinde depolanabilir. Depolandıktan sonra analitiği yapılmak istenen veri, durağan hale gelmiş ve yolculuğu sonlanmış geçmiş veridir ve bu duruma uygun veri analitiği teknolojileri ile analitiğinin yapılması gerekmektedir. Geçmiş verilerde; veri, yolculuğunu tamamladıktan sonra, sonuna ekleme operasyonu dışında, üzerinde herhangi bir değişikliği kabul etmez (Tantisiriroj, W., Patil, S., Gibson,G., Woo Son, S., J. Lang, S., B. Ross, R., 2011). Geçmiş veriyi içeren tablolarınıza ya da veri setlerinize herhangi bir zamanda yeni veriler eklediğinizde, verinin analitiğini gerçekleştirecek olan algoritmanın, sonradan eklenen verileri dikkate alması amacı ile tekrar çalıştırılması gerekmektedir. Geçmiş veriyi analiz etmede çözüm olarak iki tane teknoloji mevcuttur: bunlardan biri Hadoop, diğeri ise NoSQL veri tabanı çözümüdür ve NoSQL çözümü Hadoop ile birlikte kullanılabildiği gibi tek başına da kullanılabilmektedir. Hadoop, Apache tarafından geçmiş verinin analitiğini gerçekleştirmek amacı ile hayata geçirilen açık kaynak kodlu bir projedir. Düğüm (Node) adı verilen birçok bilgisayarın bir araya gelmesinden oluşan ve dağıtık bir mimariye sahip olan bir topolojisi vardır. Söz konusu topoloji, çok kolay bir şekilde yeni düğümler eklemeye olanak sağlayan, yatay olarak

ölçeklenebilir özelliğe sahiptir (Borthakur, D., 2005). Hadoop, HDFS (Hadoop Dağıtık Dosya Sistemi) ve MapReduce programlama modeli olmak üzere iki önemli bileşene sahiptir ve bu bileşenler topolojiye dahil olan bütün bilgisayarlarda ayrı iki katman şeklinde çalışırlar. Topolojinin yönetiminden sorumlu olan bilgisayar Efendi Düğüm (Master Node) olarak adlandırılır ve bu düğüm barındırdığı iki bileşen katmanı (HDFS, MapReduce) için farklı isimler ile adlandırılır (Name Node ve JobTracker). HDFS dosya sistemi için, verilerin kayıt edildiği yerleri bilen ve yöneten Name Node, MapReduce programlama modeli için, görevleri dağıtan ve yöneten JobTracker görevlerini üstlenir. Topolojide bir de Çalışma Düğümleri (Worker Node) mevcuttur. Bu düğümler HDFS dosya sistemi için, verilerin kayıt edildiği Veri Düğümü (Data Node), MapReduce programlama modeli için, map ya da reduce görevlerini icra eden TaskTracker görevlerini üstlenirler (Turkington, 2013). Görsel 3.1. Hadoop Mimarisinin İki Önemli Bileşeni (Bappalige, S. P., 2014). Hadoop mimarisinde yapısal ya da yapısal olmayan veriler dağıtık hale getirilmek amacı ile parçalara bölünür ve bölünen veri parçaları HDFS dosya sistemine sahip Hadoop topolojisinin veri düğümlerinde depolanırlar. Dosya sisteminin gücü, bir defada işleyebileceği veri kapasitesini gösteren chunk kapasitesinin büyüklüğünden kaynaklanır. Söz konusu kapasite sonradan ayarlanabilir bir değerdir ve kurulum sonrası otomatik olarak ayarlanmış değeri 64 megabayttır (Dean, Ghemawat, 2008). Hadoop kurulumu gerçekleştirildiğinde HDFS, topolojiye dâhil olmuş her bir düğümün yerel dosya sisteminin üzerine kurulur. Topolojideki herhangi bir düğüm bağımsız olarak, yerel işleri kendi yerel dosya sisteminde çalıştırır. Aynı düğüm, kendisine JobTracker(Master Node) tarafından verilen görevi yerine getirirken, Hadoop topolojisinin bir üyesi olarak HDFS i kullanır. Veri, HDFS dosya sisteminde depolandığında, MapReduce programlama modeline uygun olarak yazılan programlar aracılığı ile analitiği gerçekleştirilir. MapReduce programlama modeli paralel programlama mantığına sahip olmasına rağmen bu mantık, programcının dikkat etmesi gereken bir unsur değildir (Dean, Ghemawat, 2008). MapReduce yazılım kütüphanesi, yazılmış olan programı otomatik olarak paralel şekilde çalıştırmaktadır. Bir MapReduce programı zorunlu olan map() ve reduce() fonksiyonlarının yanında, bir de ihtiyaca göre eklenebilen combine() fonksiyonundan oluşur. Map prosedürü çıkartım, filtreleme ve sıralama operasyonlarını gerçekleştirirken, Reduce prosedürü özetleme operasyonunu gerçekleştirmektedir. Map() fonksiyonu, Map prosedürü içinde çalışır ve anahtar/değer ikililerini girdi olarak kabul ederek, gerçekleştirdiği işlemler sonrası değiştirilmiş ya da uygun hale getirilmiş anahtar/değer ikililerini çıktı olarak verir. Reduce() fonksiyonu, Reduce prosedürü içinde çalışır, map() fonksiyonunun çıktısını girdi olarak alır ve çıktı olarak bir anahtar/değer ikilisi oluşturur (Schneider, 2012).

MapReduce modeli ile yazılan bir program, MapReduce yazılım kütüphanesine çağrılar yaparak çalışır. Model tarafından programın birebir kopyaları oluşturulur ve veri düğümlerine gönderilir. Söz konusu kopyalardan biri Efendi Program olarak adlandırılır ve Name Node da bulunur. Yapılan kopyalama işlemi sonunda, topolojinin üyesi bütün bilgisayarlarda kullanıcı tarafından yazılan analitik programı bulunur. Her veri düğümü, kendisine efendi düğüm tarafından verilen Map ya da Reduce görevine göre kullanıcı programının ilgili fonksiyonunu (Map() ya da Reduce()) çalıştırır. Bir operasyonda kendisine Map görevi verilen veri düğümü, diğer operasyonda Reduce görevi üstlenebilir. Her veri düğümü tek başına çalışarak ilgili görevin çıktılarını üretir. Görsel 3.2. MapReduce programlama modelinin nasıl çalıştığını göstermektedir. Bilişim dünyasında, Hadoop un kullanım alanları ile ilgili birçok örnek bulunabilir. Elektronik ticarette veri analitiği, Hadoop un gerçek kullanım alanlarından biridir. Örneğin Hadoop ile bir elektronik mağazanın günlük, haftalık ya da aylık periyotlar halinde, en çok görüntülenen ürünlerini raporlamak mümkündür. Söz konusu analitiği gerçekleştirmek için, Hadoop topolojisinde mağazanın verilerini topolojinin üyesi olan veri düğümlerine dağıtmak gerekmektedir. Kendisine efendi düğüm tarafından Map görevi verilen her veri düğümü, dağıtılan verinin kendisine düşen parçasını veri seti olarak girdi kabul eder. Map görevi sona erdiğinde her ürünün anahtar (key) ve bu isme ait kaç adet olduğunu gösteren bir değerden (value) oluşan ikililer üretilir (örnek: Apple ipod, 1 Samsung Galaxy Tab, 1). Map görevi, reduce görevi için veri hazırlama süreci olarak da düşünülebilir, bu yüzden map görevinin sonunda elde edilen çıktıda ürünlerin değeri her zaman 1 olarak gösterilir. MapReduce modelinde veri düğümlerinin değiş-tokuş (shuffle) yapmaları aşamasında aynı ürünler, kendi değerleri ile birlikte efendi düğüm tarafından reduce görevi verilmiş aynı veri düğümlerine gönderilir. Reduce görevi verilen veri düğümleri, gelen aynı ürünlerin değerlerini toplayarak bir üründen kaç adet olduğunu bulur. Reduce görevi sonucunda örnek çıktı şu şekilde olabilir: Apple ipod, 15 Samsung Galaxy Tab, 23. Görsel 3.2. MapReduce Modelinin Çalışması (Dean, Ghemawat, 2008) Geçmiş veri analitiğinde tek başına ya da Hadoop ile birlikte kullanılabilen bir çözüm olan NoSQL veri tabanları, veriyi dağıtık olarak ve birden fazla kopyasını barındıracak şekilde depolayabilir. NoSQL veri tabanları; doküman, anahtar/değer, grafik ve kolon tabanlı olmak üzere dört farklı gruba ayrılır (Hecht, R., Jablonski, S., 2011). Verinin çeşidine göre

kullanılacak veri tabanı tipi belirlenir. NoSQL veri tabanları birden fazla düğümün birbirine bağlı olarak çalıştığı bir topolojiye sahiptir, böylece performans artırmak amacı ile söz konusu düğüm sayısı artırılabilir özelliktedir. En önemli NoSQL özellikleri; veri tabanı okuma ve yazma hızları bakımından son derece performanslı, kolay genişletilebilir, düşük maliyetli ve yüksek oranda ulaşılabilir olmalarıdır (Han, J., Haihong, E., Le, G., Du, J., 2011). 3.2 Gerçek Zamanlı Büyük Veri Analitiği Veri, herhangi bir kaynaktan kendi yolculuğuna başladığında bir hedefe gitmek zorundadır. Bu hedef bir dosya sistemi ya da bir veri tabanı olabilir. Gerçek zamanlı büyük veri analitiği, veriyi daha sonra analitiği yapılmak üzere herhangi bir hedefte depolamadan önce, çeşitli operasyonlarla analitiğinin yapılmasıdır. Bu analitik yöntemi adından da anlaşılacağı gibi çok hızlı bir şekilde, verinin doğumuna yakın bir zamanda gerçekleşmektedir. Bu analitik tekniği; log analizi, risk ve dolandırıcılığın belirlenmesi, izinsiz sızma girişimlerinin belirlenmesi, anlık önerme sistemleri, iş zekası vb. konularda kullanılmaktadır. Teknoloji mimarisi bakımından, geçmiş veri analitiği teknolojilerinden farklı olmakla birlikte, verileri dağıtık bir topolojiden geçirerek analitiğini yapma konusunda benzeşmektedir. Verinin, herhangi bir yazma operasyonu gerçekleşmeden önce analitiğinin yapılması gerekmektedir. Bu yüzden çok hızlı ve dağıtık bir yapının olması zorunludur. Gerçek zamanlı büyük veri analitiği için verinin türüne göre karar verilen ve açık kaynak kodlu proje olan iki tane teknoloji kullanılmaktadır. Bunlar Spark yapısının bir kütüphanesi olarak gelen Spark Streaming ve Storm dur. Ölçeklenebilirlik, yüksek işlem hacmi oranı (throughput) ve hata toleransı, söz konusu teknolojilerin genel ortak özelliklerindendir. Görsel 3.3. Geçmiş Büyük Veri Analitiğinde Veri Yolculuğu Analitiği yapılmak istenen ve herhangi bir tipte bulunan veri, enkapsüle edilerek DStream (discretized stream) ya da stream veriye dönüştürülür. Gerçek zamanlı veri analitiğinde veri, Kafka, Flume, Twitter, ZeroMQ, Kinesis ya da TCP soketi gibi kaynaklarda doğabilir ya da bu kaynaklar üzerinden geçirilerek Stream ya da DStream e dönüştürülebilir. Bu işlemden sonra gerçek zamanlı analitik işlemi, bellek içi depolama yapısını barındıran teknolojiler tarafından dağıtık bir topoloji ile gerçekleştirilir. Gerçek zamanlı analitik için

kullanılan teknolojiler, gerçekte sadece bir topoloji sunarlar. Analitiği gerçekleştirecek algoritmanın, programcı tarafından Python, Scala ya da Java dillerinden biri kullanılarak program haline dönüştürülmesi gerekmektedir. Söz konusu program, topolojinin sunduğu imkânlardan yararlanarak, yazma operasyonunun gerçekleşmesinden hemen önce ilgili analitiği gerçekleştirir. Son olarak analitiği yapılan veri ve analitik sonunda ortaya çıkan çıktı, bir hedefe yazılma amacı ile dosya sistemine, veri tabanına ya da kontrol panellerine gönderilir ( Spark Streaming Programming Guide, 2015). 3.3 Gerçek Zamanlıya Yakın Büyük Veri Analitiği Gerçek zamanlıya yakın büyük veri analitiği, diğer iki veri analitiği yöntemlerinden farklıdır ve verinin yolculuğunda; veri, analitik işlemi gerçekleşmeden önce bellek içi veri tabanlarına kayıt edilir. Bu sebeple bellek üzerinde çalışan ve bellek içi veri tabanları olarak adlandırılan depolama ve indeksleme mekanizmaları zorunludur. Literatürde bu mekanizmalara ana bellek veri tabanı (MMDB) ya da bellek yerleşik veri tabanı (memory resident database) isimleri de verilir (Molina, Salem, 1992). Bellek içi veri tabanları, son derece hızlı okuma ve yazma performansları sunmak ve bellekte çalışmak üzere tasarlanmıştır. Herhangi bir operasyon (okuma ya da yazma) bellek tabanlı bir operasyon ise disk tabanlı operasyonlardan çok daha hızlı gerçekleşir, çünkü bellek ve ikincil disk olarak adlandırılan hard disk, bellek yönetim piramidinde sırasıyla üçüncü ve dördüncü seviyede bulunur. Söz konusu seviyeler belleklerin çalışma hızlarını temsil eder. Görsel 3.3. Gerçek zamanlı veri analitiğinde veri yolculuğu Günümüzde donanım maliyetlerinin azalması ile bellek içi veri tabanları yaygın olarak kullanılır hale gelmiştir. Bellek içi veri tabanları, NoSQL veri tabanlarında olduğu gibi dağıtık bir topolojiye sahiptirler. Topolojiye üye olan bütün cihazların belleklerini kullanarak çalışırlar (Kallman, R. ve arkadaşları, 2008). Gerçek zamanlıya yakın büyük veri analitiğinde depolama tekniğinin dışında kullanılan teknolojiler diğer yöntemlerde kullanılanlar ile aynıdır. Veri doğduğunda; kaynağından alınma işlemi, analitik için veri tabanından çekilme işlemi ve analitik sonrası görselleştirme işlemleri ortaklık arz etmektedir.

4) Ürün Geliştirme için Büyük Veri Analitiği Ekosistemi Çeşitli organizasyon ve firmalar büyük veri analitiği için birçok proje, araç ve teknolojiyi üstlenmekte ve yürütmektedirler. Birinci bölümde değinildiği gibi, bu çalışma açık kaynak kodlu proje, araç ya da teknolojileri dikkate almaktadır. Büyük veri analitiğinde kullanılan açık kaynak kodlu teknolojiler büyük veri analitiğinin yöntemlerine göre gruplanırlar. Çalışmanın kalan bölümünde, veri analitiği yöntemlerinde kullanılan açık kaynak kodlu araçlar ve projeler genel olarak teknolojiler olarak adlandırılacaktır. Söz konusu teknolojiler, ilgili büyük veri analitiği kategorisinde uçtan uca bir çözüm sunabilmek için, birbirleri ile ortaklaşa çalışacak şekilde bir araya gelmek zorundadırlar. Görsel 3.4. Gerçek zamanlıya yakın büyük veri analitiğinde veri yolculuğu Büyük veri analitiğinde en yaygın kullanılan teknolojiler Görsel 4.1. de sıralanmıştır. Görsel, büyük veri analitiğini genel bir bakış açısı ile özetleyen sekiz temel kategoriden oluşmaktadır. Her kategori kendisi ile ilgili olarak farklı sayıda teknoloji barındırır ve bu teknolojilerin bazıları birbirlerinin yerine kullanılabilen teknolojilerdir. Söz konusu kategoriler bütün veri analitiği yöntemleri için ortaktır, fakat ortak olan bu kategorilerin altında sıralanan teknolojiler her yöntem için farklılık gösterir. Verinin hangi yolculuğa dâhil olması gerektiği bilinirse, söz konusu şekle bakılarak hangi teknolojilere ihtiyaç olduğu bulunabilir. Belirlenen kategorilerde listelenmiş bazı teknolojiler, ilgili kategorinin yanında başka kategorilerde de kullanılabilirler. Genel olarak görselde açık mavi ile renklendirilmiş teknolojiler verinin var olan bütün rotalarında kullanılabilirler. Mavi ile renklendirilmiş teknolojiler gerçek zamanlı büyük veri analitiği için, turuncu ile renklendirilenler geçmiş büyük veri analitiği için ve mor ile renklendirilmiş olan teknolojiler ise gerçek zamanlıya yakın veri analitiği için kullanılmaktadır. Geçmiş Büyük Veri Analitiği: Geçmiş büyük veri analitiği kendi içinde iki çözüm (Hadoop, NoSQL) ve bu iki çözüm için bir araya gelerek, ortak bir şekilde çalışması gereken açık kaynak kodlu teknolojileri barındırmaktadır.

Geçmiş veri analitiğinde verinin yolculuğu için iki yön tanımlamak gerekmektedir. Bunlardan ilki yazma operasyonunun gerçekleşmesine kadar olan süreci içeren yazma yönüdür, diğeri ise yazma operasyonunun gerçekleşmesinin ardından analitiğin yapılabilmesi için okuma ile başlayıp, analitik sonucunu almaya kadar giden süreçtir ve bu yöne de okuma yönü ismini verebiliriz. Görsel 4.1. Büyük Veri Ekosistemi Herhangi bir geçmiş veri analitiği çözümü için yazma yönünde veri, bir depolama mekanizmasına kayıt edilmek zorundadır. Veri, kaynağından doğduğunda, veri çekme kategorisinde bulunan teknolojilerden herhangi biri ile alınır ve veri serileştirme protokolleri ile bir depolama mekanizmasına (HDFS ya da NoSQL) transfer edilir. Veri, HDFS ya da NoSQL de bir kez depolandığında, analitiği gerçekleştirmek için verinin okuma yönünde hareket etmesi gerekmektedir. Okuma yönünde veri, depolama kaynağından veri serileştirme protokolleri aracılığı ile yönetme/izleme/planlama, veri erişim/veri analitiği, ilişki/görselleştirme/yürütme/geliştirme ya da veri zekâsı kategorilerindeki teknolojilere aktarılır. Görsel 4.2. geçmiş veri analitiği sürecini göstermektedir. Hadoop, HDFS, YARN ve MapReduce teknolojilerini kendi içinde barındırarak; veri depolama, yönetme/izleme/planlama, veri erişim/veri analitiği kategorilerini bir araya getirir ve geçmiş veri analitiği için bir çözüm sunar. Gerçek Zamanlıya Yakın Büyük Veri Analitiği: Veriler, analitiği yapılmadan önce bir yazma operasyonuna tabi tutulurlar ve bu yazma operasyonu bellek içi veri tabanlarına yapılır. Bellek içi veri tabanları bilgisayarların belleklerinde çalışmak için tasarlanmış çok hızlı çalışan indeksleme mekanizmalarıdır. Çok hızlı çalışıp yazma ve okuma operasyonlarına çok seri bir şekilde karşılık verebildikleri için, yazma operasyonunun gerçekleşmediği gerçek zamanlı veri analitiğinden daha yavaş, fakat geçmiş verinin analitiğinden çok daha hızlı bir şekilde verinin analitiğini gerçekleştirirler. Bir yazma operasyonu gerçekleştirildiği için bu analitik yönteminde de bir yazma ve analitik işlemi sırasında gerçekleşen bir okuma yönünden bahsetmek mümkündür. Her iki yönün bulunması nedeniyle Görsel 4.2., bu analitik yöntemi için de geçerlidir. Görselde verilen adımlarda kullanılacak teknolojilerden bazılarının gerçek zamanlıya yakın analitiğe uygun teknolojiler olacak şekilde değiştirilmesi gerekmektedir. Örneğin yazma yönündeki dördüncü

adım bellek içi veri tabanları ile gerçekleştirilirken, birinci adımdan ikinci adıma geçişte gerçek zamanlıya yakın veri analitiğine uygun teknolojiler kullanılır. Hangi analitik yöntemi için hangi teknolojilerin kullanılacağı ve birkaç yöntem için ortak kullanılan teknolojiler Görsel 4.1. de farklı renklerle belirtilmiştir. Dolayısı ile kategorilerin altında farklı renklerde sıralanan teknolojilerin her biri çalıştıkları veri analitiği yöntemini de göstermektedir. Görsel 4.2. Geçmiş ve Gerçek Zamanlıya Yakın Veri Analitiği Süreci Gerçek Zamanlı Büyük Veri Analitiği: Büyük veri analitiğindeki bu kategoride, veri, kaynağından doğduktan sonra herhangi bir yazma operasyonuna uğramadan hemen önce analitik işlemi gerçekleştirilir. Veri analitiği bu kategoride çok hızlı gerçekleştiğinden, söz konusu hızı kötü yönde etkilemeyecek teknolojilerin kullanımını gerektirmektedir. Gerçek zamanlı analitikte genel olarak iki tane açık kaynak kodlu teknoloji mevcuttur. Bunlardan biri Storm, diğeri ise Spark ın Spark Streaming kütüphanesidir. Spark ı kullanabilmek için girdi olacak her türden veriyi RDD (Resilient Distributed Data) ye çevirmek gerekmektedir. RDD, geçmiş verinin Spark üzerinden analitiğinin yapılmasına olanak sağlayan veri tipidir. Spark Streaming Kütüphanesi kullanılarak gerçek zamanlı bir analitik yapılmak isteniyorsa RDD yi de DStream veri tipine çevirmek gerekmektedir. RDD veri tipi, bilinen veri tiplerinin(integer, string vb.) bir kabuk içine alınmasıyla meydana gelir. DStream ise RDD lerin art arda zincir halinde akacak duruma getirilmesi ile oluşmaktadır. Analitiği gerçek zamanlı analitik yöntemi ve ilgili teknolojiler ile yapılan veriden elde edilen sonuç ve verinin kendisi, analitik operasyonundan sonra bir depolama mekanizmasına kaydedilerek durağan hale gelir. Görsel 4.3. gerçek zamanlı büyük veri analitiğinde verinin yolculuğunu özetlemektedir. 5) Sonuç Bu çalışma, büyük veri analitiği için yol haritası olarak bir model önermektedir. Önerilen modele göre veri, üç seviyede varlığını devam ettirerek ve analitiği yapılarak değere dönüşür. Söz konusu seviyeler, büyük veri analitiği için yapılan çalışmaların bir ürünü olarak ortaya çıkan ve Görsel 1.1. de verilen referans modelde belirtildiği gibi, servis olarak altyapı (IaaS - Infrastructure as a Service), servis olarak platform (PaaS - Platform as a Service) ve servis olarak yazılımdır (SaaS - Software as a Service). Çalışmamız NIST referans modelinin orta seviyesinde (PaaS - Platform as a Service) gerçekleşecek büyük veri analitiği

operasyonlarını detaylandırmakta ve kaynaktan hedefe bir yolculuk olarak verinin rotasını belirlemektedir. Görsel 4.3. Gerçek Zamanlı Veri Analitiği Süreci Büyük veri analitiği için, geçmiş büyük veri analitiği, gerçek zamana yakın büyük veri analitiği ve gerçek zamanlı büyük veri analitiği olmak üzere üç temel rota mevcuttur. Analitiği yapılacak olan verinin türü ve hangi amaçla kullanılacağı, verinin hangi analitik rotasını takip etmesi gerektiğini belirler. Rotası belirlenen veri, kaynaktan doğduğunda, ilgili rotada ilerleyerek ve rotanın her adımında gerçekleşen süreçler ile bir değere dönüşür. Rotanın sonunda elde edilen sonuç ile birlikte verinin kendisi de durağan hale gelerek sonraki analitik işlemleri için kayıt altına alınır. Veri, ilgili rotada ilerlerken geçeceği duraklar Görsel 4.1. de sekiz temel kategori ile özetlenmiştir. Veri, her kategori noktasında bir operasyon geçirir ve bu operasyonların gerçekleşmesi için çeşitli teknolojilere ihtiyaç vardır. Büyük veri analitiğinde kullanılan teknolojiler Görsel 4.1. de kategorilerine göre sıralanmışlardır. Listelenen teknolojiler açık kaynak kodlu projeler olup, bazıları, altında listelendiği kategorinin dışındaki kategorilerde de kullanılabilirler. Verinin rotasını tamamlayabilmesi için, her kategoride kullanılacak olan teknoloji tarafından, bir önceki kategori için kullanılmış teknolojiden devralınması gerekmektedir. Buradan da anlaşılacağı gibi rotanın tamamlanabilmesi için uçtan uca görev alacak bütün teknolojilerin birbirleri ile uyum içinde haberleşmesi ve ortak hareket etmesi gerekmektedir. 6) Gelecek Çalışmalar Görsel 4.1. de verilen ve büyük veri analitiğinin genel bir fotoğrafını ortaya koyan kategorilerin altında listelenen ilgili teknolojiler, birbirleri ile ortak çalıştıklarında anlamlı sonuçlar üretirler. Verinin, bu çalışmaya konu olan her üç rotada da analitik süreçlerini devam ettireceği ve ilgili teknolojilerin bir arada çalışır durumda olduğu bir platformdan ve bu platformun referans modelimizin orta katmanı olan PaaS de çalışarak hizmet olarak sunulmasından bahsetmekteyiz. Söz konusu platformun olması gerektiğini bu çalışma ile ortaya koyarken bunun pratik olarak da hayata geçirilmesi gerektiğini düşünmekteyiz ve yakın gelecekte bu düşüncemizi uygulamayı öngörmekteyiz.

KAYNAKLAR Dean, J., & Ghemawat, S. (2008). MapReduce: simplified data processing on large clusters. Communications of the ACM, 50, 107-113. doi: 10.1145/1327452.1327492 Han, J., Haihong, E., Le, G., Du, J. (2011). Survey on nosql database. Proceedings of the 6th International Conference on Pervasive Computing and Applications (ICPCA), (pp.363-366). Schneider, R. D. (2012). Hadoop For Dummies, Special Edition. John Wiley & Sons Canada, Ltd. Molina, H. G., Salem, K. (1992). Main Memory Database Systems: An Overview. IEEE Transactions on Knowledge and Data Engineering, Vol. 4, No. 6, Dittrich, J., Quian eruiz, J. (2012). Efficient big data processing in Hadoop MapReduce. Proceedings of the VLDB Endowment. Vol. 5 Issue 12, (pp.2014-2015). NIST Big Data Public Working Group. (2014). NIST Big Data Framework. http://semanticommunity.info/data_science/data_science_for_nist_big_data_framework/nis T_Big_Data_Framework#Figure_2:_NIST_Big_Data_Reference_Architecture_%28NBDRA%29, S.E.T. [Erişim Tarihi: 02.09.2015]. Tantisiriroj, W., Patil, S., Gibson,G., Woo Son, S., J. Lang, S., B. Ross, R. (2011). On the Duality of Data-intensive File System Design: Reconciling HDFS and PVFS. Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis. Article No. 67 Borthakur, D. (2005). The Hadoop Distributed File System: Architecture and Design. https://svn.apache.org/repos/asf/hadoop/common/tags/release-0.12.0/docs/hdfs_design.pdf, [Erişim Tarihi: 02.09.2015]. Turkington, G. (2013). Hadoop Beginner's Guide. Packt Publishing. Bappalige, S. P. (2014). An introduction to Apache Hadoop for big data. http://opensource.com/life/14/8/intro-apache-hadoop-big-data, [Erişim Tarihi: 08.09.2015]. Kallman, R. ve Arkadaşları (2008). HStore:A HighPerformance, Distributed Main Memory Transaction Processing System. Proceedings of the VLDB Endowment. Vol. 1 Issue 2, (pp.1496-1499). Spark Streaming Programming Guide. (2015). http://spark.apache.org/docs/latest/streamingprogramming-guide.html, [Erişim Tarihi: 02.09.2015]. Hecht, R., Jablonski, S. (2011). NoSQL evaluation: A use case oriented survey. 2011 International Conference on Cloud and Service Computing. (pp. 336-341).