Büyük Veri Uygulamaları ve Ülkemizden Örnekler,
Güvenlik Analizlerinin Araştırılması
12060382 Hülya Soylu
Akademik Danışman : Doç.Dr Sedat Akleylek
İçerik
1. Büyük Veri (Big Data) Nedir?
2. Büyük Veri (Big Data) Bileşenleri Nelerdir?
3. Büyük Veri'nin Uygulandığı Örnek Alanlar
4. “Big Data” Kullanımına Örnekler
5. Dünyadaki ve Türkiye'deki Büyük Veri (Big Data) Örnek Uygulamaları
6. Big Table(Büyük Tablo)
7. Büyük Veri Teknolojilerinde Beklenen Özellikler
8. Arama Motorunda Big Data'nın Yapay Zeka Sistemleri ile Analizi
9. Büyük Veri Teknik ve Teknolojileri
10. Hadoop
11. BüyükVeri Teknik ve Teknolojileri
12. NoSQL , MongoDB , Pig,İmpala,
13. Büyük Veri Güvenlik Çözümleri
Büyük Veri
➔ Big Data ; şirketlerin büyük veri yığınlarıyla ve verilerin depolanmasıyla
baş etmek için gereksinim duydukları teknolojik araçlar ve süreçlerdir.
[1]
● Büyük veri; Yapılandırılmış (structured) ve Yapılandırılmamış
(unstructured) verilerden meydana gelir.
● Yapılandırılmış veriler: ürün, kategori, müşteri,
fatura, ödeme...
● Yapılandırılmamış veriler: tweet, paylaşım, beğeni
(like), e-posta, video, tıklama...
● Büyük veri miktarları teranyte, petabyte, exabyte, belki zettabyte
seviyesinde bile olabilir.
● 2000 yılında tüm dünyada 800,000 petabyte büyüklüğünde veri
saklandı. 2020 yılında bu verinin 35 zetabyte olacağı tahmin ediliyor.
● Örneğin Twitter her gün 7 TB, Facebook 10 TB ve bazı kurumlar her
gün her saat TB’larca veri saklıyor.
Big Data etkin bir şekilde verileri analiz edip işlemek için:
➔ A/B testleri
➔ yapay zeka sistemleri
➔ dil işleme süreçleri
➔ gelişmiş simülasyon
gibi olağanüstü teknolojilere ihtiyaç duymaktadır.
Büyük Veri Bileşenleri
➔
Büyük veri kavramını daha iyi anlamak için 5V şeklinde adlandırılan
bileşenlerini inceleyelim:
➔
Volume(Veri Büyüklüğü)
➔
Velocity(Hız)
➔
Verification(Doğrulama)
➔
Variety(Çeşitlilik)
➔
Value(Değer)
Volume(Veri Büyüklüğü): Hacim, verilerin depolanması bu işin temeli ve işletmeler için
ayrı bir maliyet faktörü, özellikle büyük şirketler için… (Google her saat 1 petabyte veri
işliyor.)
Velocity(Hız): Verilerin işlenme hızı da hacim ile doğru orantılı biçimde değişiyor.
Verification (Doğrulama):Verilerin doğru katmanlardan ve doğru güvenlik seviyesinden
sunularak doğru kişiler tarafından erişilebilmesi ve ilişkisi olmayanlar için gizli kalmasıdır.
Variety(Çeşitlilik): Veri çeşitliliği: pdf, e-mail, blogs, tweet, video… Farklı veri tiplerinin aynı
düzlemde değerlendirilmesi de big data kavramındaki diğer bir bileşendir.
Value(Değer):Büyük verilerin anlamlandırılması yani değere dönüşmesidir. Alınacak
kararlarda gerçek zamanlı olarak kullanılıp artı yönde katkı sağlaması gerekir.
Dünyada Kamu Büyük Veri
Uygulamaları
● Trafik Yoğunluğu Takibi
Projesi
Sektör: Ulaştırma
Hollanda'da.
● Sosyal Medya Analizi
Sektör: İletişim
Hollanda'da.
● Akıllı Şebeke Analizi
Sektör: Enerji
Tennessee Valley
Authority
● Proje: Prematüre
Bebek Takibi
Sektör: Sağlık
Ontario Üniversitesi
● Görüntüleme Tanı
Hatalarının Azaltılması
Sektör: Sağlık
Asya Sağlık Bürosu
● Suç Önleme Projesi
Sektör: Güvenlik
New York
● Önleyici Polis
Hizmetleri
Sektör: Güvenlik
Amerika
● Su Kaynaklarının
Takibi
Sektör: Çevre
Beacon Enstitüsü
Türkiye'de Kamu Büyük Veri
Uygulamaları
● Şu an için aktif olarak büyük veri üzerine kurgulanmış bir
Kamu Projesi bulunmamaktadır.
“Big Data” Kullanımına Örnekler
●
Amazon fiyat sorgulama uygulaması, barkod okuma ve en ucuz fiyatı arama
özelliği olan uygulamayı 2011 sonu kullanıcılara sundu.,
●
NASA İklim Simülasyon Merkezi 32 petabytelık iklim verisi biriktirmiş ve süper
bilgisayarlarla iklim değişikliğinin simülasyonunu yapmaktadır.
●
Facebook veri tabanında 50 milyar kadar fotoğraf bulunmaktadır. Aynı şekilde 1.15 milyar
sosyal medyada veri oluşturan aktif kullanıcısı vardır.
●
Her gün 5 milyar insan arama, mesajlaşma, internette sörf gibi yollarla veri üretmektedir.
●
2012 yılında Obama’nın yeniden seçilmesi için yaptığı kampanyada Big Data analizleri
sonucu elde ettiği verileri kullanmış ve yeniden seçilmiştir
●
Sosyal medya akışının analiz edilmesi;
Sosyal medyada dokunulan kişiler hakkında bilgi toplama, doğru
mesajıdoğru müşteriye doğru zamanda iletebilme yönetimi için
kullanılıyor.
●
Fraud;
Devletler ve bankalar kötüye kullanım durumlarının tespiti için
kullanıyorlar.
●
Arama motorları;
Etiketleme işlemiyle arama motorlarında çıkan firmalar bu sayede
detaylı raporlama alarak takip etmek, sonrasında iletişime geçmek
mümkün.
●
Telekom ve iletişim kullanımı;
Mobil telefon kullanımı ile ilgili bir çok veri kullanıcı bazında tutuluyor;
iş geliştirme ve analiz kapsamında kullanılıyor.
●
Güvenlik ve Ceza hukuku uygulamaları;
➔
Bulut bilişim sistemine atanan platform ile tüm hukuki süreç
depolanacak ve suçlu entegre sistemler sayesinde takip edilecek.
➔
Güvenlik platform’u web üzerindeki tüm görselleri inceleyerek, suçluya
benzeyen fotoğraflardan dijital takip sürebilecek.
Dünyadaki ve Türkiye'deki Büyük Veri (Big
Data) Örnek Uygulamaları
➔
Google ihtiyacı olan bu teknolojiyi ilk kendisi geliştirdi.
➔
Milyarlarca internet sayfasının verisini Google File System
üzerinde tutuyor.
➔
Veritabanı olarak Big Table(Büyük Tablo) kullanıyor.
➔
Büyük veriyi işlemek için MapReduce kullanıyor.
Big Table(Büyük Tablo)
●
Google tarafından geliştirilen ve arama motoru tasarımında kullanılanılır.
●
Amaç web sayfalarının daha başarılı bir şekilde;
➔
Depolanması (Storing)
➔
Bulunması (Finding)
➔
Güncellenmesi (updating)
●
Google’ın konuya yaklaşımı, ucuz bilgisayarlar tarafından yüksek
miktarda verinin tutulması ve işlenmesi yönündedir.
●
Tek bir bilgisayarda işlenecek olan mantıksal tablo, çok sayıda ufak ve
daha ucuz bilgisayar tarafından işlenebilmekte / tutulabilmektedir.
Büyük tablo yaklaşımında veriler;
➔ Herhangi bir büyük tablo kayıdında, sitenin adresi, sitenin metin kısmı,
sitede bulunan bağlantılar (link, anchor, çapa) ve sitenin başlığı
tutulmaktadır.
Büyük Tablo Kullanımının Avantajları
●
Özel bir sorgulama diline (query language) ihtiyaç duyulmaz ve
dolayısıyla sorgulama dilinin iyileştirilmesi (query optimisation) gibi
özel adımlara gerek yoktur.
●
Sadece satır seviyesinde işlemler gerçekleştirilir. Yani ilişkisel veritabanı
(relational database) tasarımında olduğu üzere, tablolar arasında
birleştirme (join)gibi işlemlere gerek yoktur.
●
Tabletler, bütün büyük tablo (big table) sisteminde bulunan sunucular
tarafından erişilebilir durumda tutulurlar.
●
Ayrıca yapılan her işlem ilave bir işlem kütüğünde (transaction log)
tutulur ve bu kütüğe bütün sunucular erişebilir.
●
Sunuculardan birisinin bozulması durumunda, diğer sunuculardan birisi
bu işlem kütüğüne erişerek bozulan sunucunun görevini üstlenebilir.
●
Satır bazında bir limit yoktur. Yani her kayıt için sınırsız sayıda bağlantı
tutulması gerekebilir.
Büyük Tablo'da Karşılaşılabilecek Problemler
●
Aynı kaydın birden fazla geçmesi
●
Aynı içeriğin internet üzerinde içerik hırsızları tarafından kopyalanması
●
Aynı içeriğin bir kısmının aynı kaldığı yeni sürümlerinin çıkması
●
Çoklu gönderiler (spam, mass message)
●
Aynı içeriğin birden fazla divan (forum) veya tartışma sitelerinde
bulunması
Bu problemin çözümü için tekrarların bulunması
gerekir.Tekrar bulma işlemi iki seviyede yapılabilir;
➔
Birincisi tam tekrarın bulunmasıdır ki buradaki amaç, birebir kopyalanan
içerikleri eşleştirmektir.
➔
İkincisi benzerliklerin bulunması ve belirli bir benzerlik seviyesinin
üzerinde olan içeriklerin eşleştirilmesidir.
●
Tam benzerliğin bulunması için toplam kontrolü (checksum) yöntemleri
kullanılır. Örneğin CRC (cyclic redundancy check) ve benzer
algoritmalar ile sayfaların toplam kontrolü yapılır ve eşleştirilir.
●
Benzer sitelerin bulunması için de geliştirilmiş algoritmalar vardır.
Örneğin SimHash algoritması (benzerlik özeti) google tarafından da
kullanılmaktadır.
●
Amazon verilerini DynamoDB üzerinde tutuyor.
●
Facebook, Twitter, Linkedin gibi firmalar dev veri için
geliştirdikleri projeleri açık kaynaklı olarak yayınlıyorlar.
●
Açık kaynak olarak yayınlanan örnek projeler;
➔
Cassandra
➔
Hive
➔
Pig
➔
Voldemort
➔
Storm
➔
IndexTank
GittiGidiyor’da Büyük Veri
➔
Pazarlama
Detaylı kullanıcı profilleri
Hedef kitle belirleme
➔
Segmentasyon
Alışveriş geçmişi
Ziyaret geçmişi
➔
Raporlama
Veriambarı, Analitik Verileri, A/B Testleri
Özel raporlar
Büyük Veri Teknolojilerinde Beklenen
Özellikler
●
Esnek
➔
Her türlü veriyi işleyebilmeli
●
Ölçeklenebilir
➔
İhtiyaca göre genişleyebilmeli
●
Veri Garantili
➔
Veriler yedekli ve erişilebilir olmalı
●
Düşük Maliyetli
➔
Açık kaynaklı projeler
Arama Motorunda Big Data'nın Yapay Zeka
Sistemleri ile Analizi
●
Sınıflandırma (Classification)
Hatalı kategorilerin tespiti
Dolandırıcılıkla mücadele
Duygu analizi
●
Kümeleme (Clustering)
Kullanıcıların kümelenmesi
Ürünlerin gruplanması
●
Öneri sistemleri (Recommendation)
İçerik tabanlı
Kullanıcı / Ürün tabanlı
Hadoop
➔
Açık kaynak kodlu(open source), dağıtık(distributed),
ölçeklenebilir(scalable),hata dayanıklı(fault tolerant) Apache projesidir.
➔
Map-Reduce işlemlerini hedef almaktadır.
➔
Büyük ölçekteki işlemleri ve hesaplamaları hedefler(very lage database
(VLDB)).
➔
Büyük Veri (Big Data) dünyasında düşük maliyetli ve verimli çözümler
üretir.
Hadoop Tarihçesi
●
Çıkış Amacı : “Kabul edilebilir zaman ve maliyetle nasıl büyük veri
üzerinde işlem yapılabilir?” sorusuna cevap bulmaktır.
Hadoop Distributed File System (HDFS)
➔
Büyük miktardaki veriye yüksek iş/zaman oranı (throughput) ile erişim
sağlayan Dağıtık Dosya Yönetim Sistemidir.
➔
Veriyi 64MB ya da 128MB'lık bloklar halinde saklar.
➔
Her blok küme içerisinde farklı düğümlere dağıtılır.
➔
Her bloğun varsayılan 3 kopyası tutulur böylece RAID benzeri bir yapıyla
yedeklenir.
➔
Bu sayede verinin erişilebilirliği ve güvenilirliği
sağlanmış olur.
➔
Aynı dosyaya ait bloklar farklı düğümlerde olabilir.
➔
Ayrıca HDFS çok büyük boyutlu dosyalar üzerinde okuma işlemi
(streaming) imkanı sağlar, ancak rastlantısal erişim (random access)
özelliği bulunmaz.
➔
HDFS, NameNode ve DataNode süreçlerinden (process) oluşmaktadır.
NameNode
●
NameNode ana (master) süreç olarak blokların sunucular
üzerindeki;dağılımınından,yaratılmasından,silinmesinden bir blokta
sorun meydana geldiğinde yeniden oluşturulmasından her türlü dosya
erişiminden sorumludur.
●
Kısacası HDFS üzerindeki tüm dosyalar hakkındaki bilgiler (metadata)
NameNode tarafından saklanır ve yönetilir.
●
Her kümede yalnızca bir adet NameNode olabilir.
DataNode
●
DataNode ise işlevi blokları saklamak olan slave (köle) süreçtir.
●
Her DataNode kendi yerel diskindeki veriden sorumludur.
●
Ayrıca diğer DataNode’lardaki verilerin yedeklerini de barındırır.
●
DataNode’lar küme içerisinde birden fazla olabilir.
Hadoop MapReduce
●
HDFS üzerindeki büyük dosyaları verileri işleyebilmek amacıyla kullanılan
yöntemdir.
●
Map fonksiyonu ile veri içerisinden istenilen veriler anahtar-değer
formatında seçilir.
●
Reduce fonksiyonu ile de seçilen bu veriler üzerinde işlem yapılır , sonuç
yine anahtar-değer olarak iletilir.
➔ Map ve Reduce arasında Shuffle ve Sort aşamaları vardır.
➔ Benzetme yapılırsa;
➔ WHERE ile yapılan filtreleme gibi Map aşamasında
sadece ihtiyacımız olan veriler seçilir.
➔ Reduce aşamasında ise SUM, COUNT, AVG gibi
birleştirme işlemleri yapılır
➔Hadoop’un gücü;
İşlenen dosyaların her zaman ilgili düğümün (node) yerel
diskinden okunması ağ trafiğini meşkul etmemesi birden
fazla işi aynı anda işleyerek doğrusal olarak
ölçeklenmesinden geliyor.
JobTracker
●
JobTracker yazılan MapReduce programının küme üzerinde dağıtılarak
çalıştırılmasından sorumludur.
●
Ayrıca dağıtılan iş parçacıklarının çalışması sırasında oluşabilecek
herhangi bir problemde;
●
O iş parçacığının sonlandırılması ya da yeniden başlatılması da
JobTracker’ın sorumluluğundadır.
TaskTracker
➔
TaskTracker, DataNode’ların bulunduğu sunucularda çalışır.
➔
JobTracker’dan tamamlanmak üzere iş parçacığı talep eder.
➔
JobTracker, NameNode’un yardımıyla DataNode’un lokal diskindeki
veriye göre en uygun Map işini TaskTracker’a verir.
➔
Bu şekilde verilen iş parçacıkları tamamlanır .
➔
Sonuç çıktısı yine HDFS üzerinde bir dosya olarak yazılırak program
sonlanır.
MongoDB
● NoSQL veritabanı
çözümlerinden bir
tanesi.
● Açık kaynak.
● MongoDB doküman
bazlı bir veritabanıdır.
● Büyük miktardaki
veriye hızlı bir şekilde
erişmeye olanak
sağlar.
Pig
● Yahoo tarafından geliştirilmiştir.
● MapReduce yazmak için "DataFlow" dili olarak
adlandırılan, SQL'den farklı kendine özgü PigLatin
dili kullanılır.
● Join destekler, daha kolay ve performanslı
MapReduce programaları yazmayı sağlar.
Hive
● Facebook tarafından geliştirilmiştir.
● SQL benzeri HiveQL dili ile Java kullanmadan
MapReduce uygulamaları yazılmasını sağlar.
● Öncelikle HDFS üzerindeki dosyalar tablo
olarak tanıtılır.
● Daha sonra bu sanal tablolar sorgulanabilir.
İmpala
● Google Dremel (2010) projesinden
esinlenmiştir.
● Cloudera tarafından geliştirilmiştir.
● MapReduce yapmadan verilere direkt erişir.
● HiveQL destekler, 7-45 kat daha hızlı çalışır.
Hadoop Ekosistemi
●
Hadoop çatısı altında birçok proje barınır:
➔
Hive
➔
Pig
➔
HBase
➔
Mahout
➔
Impala
➔
Diğerleri: Sqoop, Flume, Avro, Zookeeper, Oozie,
➔
Cascading...
HadoopDatabase(HBase)
●
Hadoop üzerinde çalışan NoSQL veritabanıdır
●
Google Big Table örnek alınarak geliştirilmiştir
●
Esnek şema yapısı ile binlerce kolon, petabyte'larca satırdan oluşan
veriyi saklayabilir.
●
HDFS üzerinde çalıştığından MapReduce destekler.
NoSQL
➔
NoSQL veritabanları;büyük verilerin hızlı işlenmesi ve
ölçeklendirilmesi (scalability) amacıyla geliştirilmiş
sistemlerdir.
➔
Big Table ve DynamoDB yıllardır Google ve Amazon
tarafından kullanılan NoSQL sistemlerdir.
NoSql Avantajları
➔
Yüksek erişilebilirlik
➔
Okuma ve yazma performansı
➔
Yatay olarak genişletilebilirlik
➔
Binlerce sunucu birarada çalışabilir
➔
Çok büyük veri üzerinde işlem yapabilirler.
➔
Programlama ve bakımı kolay
➔
Maliyet açısından avantajlı
➔
Kullanımı kolay ve esnek nesne yönelimli programlama.
NoSql Dezavantajları
➔
Veri güvenliği konusunda da RDBMS’ler kadar gelişmiş özelliklere henüz sahip değiller.
➔
RDBMS sistemlerini kullanan uygulamaların NoSQL sistemlere taşınması zordur.
➔
RDBMS sistemlerinin NoSQL sistemlere taşınması sırasında veri kaybı sözkonusu olabilir.
➔
İlişkisel veritabanı yönetim sistemlerindeki işlem hareketleri (transaction) kavramı,
NoSQL veritabanı sistemlerinde bulunmadığı için veri kaybı söz konusu olabilmektedir.
➔
İlişkisel veritabanı yönetim sistemlerindeki sorgu tabanlı veri erişimi yerine NoSQL
sistemlerdeki anahtar tabanlı veri erişimi sağlamak gerekmektedir.
Büyük Veri Güvenlik Çözümleri
Apache Sentry kullanarak hadoop ekosistemin de rol bazlı
yetkilendirme ile pekçok Büyük Veri aracı arasında güvenli
iletişim sağlanabilir.
●
Hive aracı ile SQL komutları benzeri erişim yapıldığında HDFS’e
gittiğimizde Sentry aracı güvenlik denetimlerini yapmakta ve izni
olmayan sorguları engellemektedir.
KAYNAKLAR
●● [1]Ayhan Önder, BigData CTP
● [2]Big Data Security- Joey Echeverria
● [3]Kamuda Büyük Veri ve Uygulamaları- Doç.Dr.İzzet Gökhan
ÖZBİLGİN
● [4]Büyük Veri Analitiği ve Güvenliği- Prof.Dr. Şeref SAĞIROĞLU
● [5]devveri.com