Apache Hadoop Project
İçerik Apache Hadoop Project Hadoop Kullanıcıları Yahoo Alt Projeler Hadoop Cluster Topoloji HDFS HDFS Toplojisi HDFS Veri Modeli ve Akışları (Okuma/Yazma) HDFS e Erişim Hadoop MapReduce Map & Reduce M-R Uygulamaları M-R Süreçleri ve Modelleri M-R Kaynak Kullanımları Özyeğin Üniversitesi Cloud Comp. Lab. PC Lab. Cluster IBM Blade Cluster
Neden Bulut Bilişim Problem Büyük miktarda veriyi saklamak ve işlemek Ölçeklenebilirlik PB'larca veri Performans GB lar büyüklüğünde dosyalar Güvenilirlik 1000 lerce makinada hata toleransı Çözüm Bulut Bilişim Apache Hadoop Hadoop, PB larca veriyi saklamak ve işlemek için oluşturulmuş bir framework sağlar. Veri Depolama: Özelleşmiş Dağıtık Dosya Sistemi Hadoop Distributed File System-HDFS Google File System-GFS Veri İşleme: Dağıtık veri işlem algoritmik yapıları Hadoop MapReduce Google MapReduce
Apache Hadoop Project Java temelli açık kaynak kod projesidir. Apache altında geliştirilmektedir. Büyük ölçekle dağıtık veri işlemeyi amaçlar. Google ın MapReduce framework ü ile Google File System(GFS) baz alınarak geliştirilmiştir. Her türlü donanım üzerinde çalışır. Bir standart haline gelmektedir. HadoopSorts a Petabytein 16.25 Hours and a Terabyte in 62 Seconds (http://developer.yahoo.net/blogs/hadoop/2009/05/hadoop_sorts_a_petabyte_in_162.html) Bytes Nodes Maps Reduces Replication Time 500,000,000,000 1406 8000 2600 1 59 seconds 1,000,000,000,000 1460 8000 2700 1 62 seconds 100,000,000,000,000 3452 190,000 10,000 2 173 minutes 1,000,000,000,000,000 3658 80,000 20,000 2 975 minutes
HadoopKullanıcıları Facebook Reporting, analytics, machine learning Amazon Elastic MapReduce Hosted Hadoop on top of EC2 and S3 Product search index Twitter Analytics, social network graphs AOL, Microsoft(PowerSet), IBM, http://wiki.apache.org/hadoop/poweredby
Yahoo! 10+ Kümede 25,000+ Makine 3,000 makineli dev kümeler 3 Petabyte Veri 700+ Kullanıcı Haftada 10,000+ iş Content Optimization
Alt Projeler HadoopCommon: Diğer Hadoop alt projelerinde de kullanılan ortak araçlar. MapReduce: Büyük veri kümelerinde dağıtık işlemeye imkan veren yazılım framework ü. HDFS: Uygulamaların yüksek verimlikle verilere erişmesine imkan veren dağıtık dosya sistemi. HBase: Büyük tablolu yapılar için veri depolamayı destekleyen ölçeklenebilir ve dağıtık veri tabanı Hive: Data summarization ve ad hoc sorgulamaları destekleyen data warehouse altyapısı ZooKeeper: Dağıtık uygulamalar için geliştirilmiş bir koordinasyon servisi. Pig: Yüksek seviye veri-akışlı yazılım dili ve paralel hesaplama için hesaplama framework ü Chukwa: Büyük dağıtık sistemler için veri toplama sistemi
Google & Hadoop Hadoop MapReduce HBase Google Mimarisi Hadoop Distributed File System MapReduce BigTable Apache Hadoop Mimarisi Google File System
Hadoop ClusterTopoloji NameNode client JobTracker NameNode masternode workernodes HDFS HDFS HDFS HDFS HDFS HDFS HDFS HDFS HDFS HDFS workernodes
HDFS Hadoop Distributed File System (HDFS) Hadoop uygulamalarında kullanılan birincil veri depolama sistemidir. Google ın geliştirdiği Google File System(GFS) temeline dayanır. Ucuz maliyetlerle yüksek kapasitelerde yedekli veri depolamayı sağlar. Veri bloklar halinde tutulur. Hesaplama işlemlerinde yüksek hızlarda gerçekleşmesi için sıklıkla I/O yapılan büyük dosyalar için optimize edilmiştir.
HDFS Topolojisi NameNode: Dosya ve dizinlerin açma, kapatma ve yeniden adlandırma gibi dosya sisteminin namespace işlemlerini yürütür. lardaki blocklarının yerlerini belirler. FS FS FS FS status metadata NameNode status s: Veri bloklarını üzerinde barındırır. İstemciler veriyi direk olarak datanode lara iletir. İstemcilerden gelen okuma ve yazma isteklerinin yerine getirilir. FS FS FS FS
HDFSVeri Modeli HDFS - Tasarım Dosyalar, varsayılanda 64MB bloklara bölünmüştür. Datanode larda bu bloklar depolanır. Tek bir Namenode da metadata ve blok yerleri yönetilir. Topolojiye göre blok yerleşimi Aynı node/rack Kullanıcı, grup tabanlı izinler vardır. HDFS - Replication Varsayılanda, bloklar 3x çoğaltılarak farklı datanode lara gönderilir.
HDFS Veri Akışı(Okuma) HDFS İstemci 1:aç Dağıtık Dosya Sistemi 2:blok yeri getir NameNode FSData InputStream istemci JVM istemci makine 4:oku
HDFS Veri Akışı(Yazma) 1 Data Blok için HDFS İstemci 1:oluştur Dağıtık Dosya Sistemi FSData OutputStream 2:oluştur 7:işlemi tamamla NameNode istemci JVM istemci makine 4:yaz paketi 5:ack paketi replikasyon 4 5 4 5
HDFS e Erişim HDFS kullanıcıları için komutlar $ bin/hadoop fs -put food food $ bin/hadoop fs -ls $ bin/hadoop fs -cat food $ bin/hadoop fs -rm food $ bin/hadoop fs -mkdir juice... HDFS yöneticileri için komutlar $ hadoop dfsadmin -report $ hadoop dfsadmin -refreshnodes $ hadoop dfsadmin -safemode leave... Dosya Sistemi Java API org.apache.hadoop.fs.* Web Arayüzü (Demo da gösterilecektir) http://masternode:50070
MapReduce Hadoop MapReduce Büyük veri kümelerinin paralel olarak işlenmesine yönelik uygulmalar için geliştirilmiş bir yazılım framework ü ve modelidir. Programcılara, dağıtık uygulamalar yazabilecekleri kolay ve temiz bir ortam sunar.(java, perl, Phyton, php,c,c++...) org.apache.hadoop.mapred.* Eski API org.apache.hadoop.mapreduce.* Yeni API Bir dizi veri işleme sisteminden oluşur. (pipelines) Otomatik iş dağıtımı ve paralelleştirme sağlar. Yüksek hata toleransı ile çalışır. Durum ve izleme araçlarına sahiptir. http://datanode:50030
MapReduce Uygulamaları WordCount Grep Sort Log Analysis Web Graph Generation Inverted Index Construction Machine Learning NaiveBayes, K-means, Expectation Maximization,...
MapReduce Topolojisi JobTracker, istemci uygulamalarla MapReduce işlerinin başlatıldığı yerdir. İşi, küme içerisinde uygun olan makineler arasında dağıtır. Mümkün olduğunca verilere en yakın makinelerde işi tutmaya çalışır. ların birinde bir sorun olursa, işin o kısmını tekrar uygun nodelar arasında dağıtır. JobTracker da bir sorun olması halinde iş sonlanır. job JobTracker
MapReduceSüreci MapReduce Program 1:işi çalıştır JobClient 2:yeni jobid getir 4:işi gönder JobTracker 5:işi sıfırla istemci JVM 7:heartbeat istemci makine 3:iş kaynaklarını kopyala Shared FileSystem (e.g.hdfs) Child 9:başla 10:çalıştır MapTask & ReduceTask
M-R Model-Logical Dosya1: Türkiye de Bulut Bilişim Dosya2: Bulut Bilişim ve Bulut Teknolojileri cat * <_,Türkiye de Bulut Bilişim> <_,Bulut Bilişim ve Bulut Teknolojileri> Map Map map codes sort/merge reduce codes output <Türkiye, 1> <Bulut, 2> <Bulut, 1> <Bilişim, 1> <Bilişim, 1> <Teknoloji, 1> <Türkiye, [1]> <Bulut, [1,2]> <Bilişim, [1,1]> <Teknoloji, [1]> Reduce <Türkiye, 1> <Bulut, 3> <Bilişim, 2> <Teknoloji, 1>
M-RModel-Fiziksel input HDFS split0 split1 split2 map copy sort/merge reduce output HDFS part0 split3 split4 map split5 reduce part1 map @ 1 Worker Node
HDFS & MapReduce From Tuning Hadoop for Performance by Srigurunath Chakravarthi
M-R Sistem Kaynak Kullanımları From Optimizing Hadoop* Workloads By Nurcan Coskun
M-R Sistem Kaynak Kullanımları M-R Step CPU Memory Network Disk Notes Server Map Input Yes* Yes * For remote maps (minority) Execute Map Function Yes* * Depends on App Store Map Output Yes* Yes+ Yes * If compression ON + Memory sensitive Shuffle Yes+ Yes Yes +Memory sensitive Execute Reduce Function Yes* * Depends on App Store Reduce Output Yes* Yes+ Yes * If compression ON + For replication factor > 1 From Tuning Hadoop for Performance by Srigurunath Chakravarthi
Demo Demo
Özyeğin Üni. Cloud Comp. Lab. PC Lab. Cluster 16 HP Compaq dc5850 AMD Athlon X2 Dual Core 1GHz 250/500 GB 7.2K Harddisk 2 GB Memory 100 Mbps Ethernet Bağlantısı OS RHEL 5U4 64-bit Bulut Bilişim Altyapısı Java 1.6.0-openjdk-1.6.0 Hadoop-2.20.2 MPI Altyapısı OpenMPI, MVAPICH, MVAPICH2 Torque,Maui IBM Blade Cluster 2 IBM H22 Blade Intel Xeon E5530 2.40 GHz 72 GB 15K Harddisk 24 GB Memory 1Gbps Ethernet Bağlantısı 292 GB lık SANüzerinde HDFS
PC Lab. Cluster Kullanımı İç kullanıma yönelik Uygulama testleri Farklı ölçekleri test etme imkanı (2-4-8-16 lı makine kümeleri) MPI yapılarını destekleyen
IBM Blade Cluster Kullanımı Üst seviyedeki çalışmalar Performans kritik uygulamalar Apache VCL ile üniversite dışı kullanım ihtiyaçlarına yönelik olarak şekillendirilmiş IBM H22 Blade Sunucular RedHat GFS için Linux Cluster yapısı SAN Sistemi için Multipath yapısı ApacheVCL üzerindeki Vmware Server uygulaması Gerçek ve sanal makineler için farklı HDFS alanları Front View Rear View Created By Cem Arslan
Teşekkürler Oturumumuza Katıldığınız İçin Teşekkürlerimizi Sunarız... Berat.G.Ulualan@gmail.com 0538 311 4102