Amazon EMR Üzerinde Apache Hadoop

Neden EMR'de Apache Hadoop?

Apache™ Hadoop®, büyük veri kümelerinin verimli bir şekilde işlenmesi için kullanılabilen açık kaynak kodlu bir yazılım projesidir. Hadoop, verilerin işlenip depolanması için tek bir büyük bilgisayar kullanmak yerine ticari donanımları küme haline getirerek çok büyük veri kümelerini paralel bir biçimde analiz etme olanağı tanır.

Hadoop ekosisteminde, analitik iş yüklerinizin gereksinimlerini karşılamaya yönelik çeşitli araçlar sağlayan birçok uygulama ve yürütme altyapısı vardır. Amazon EMR, Hadoop'u ve Hadoop ekosistemindeki diğer uygulamaları çalıştıran Amazon EC2 bulut sunucularından oluşan, tam olarak yapılandırılmış, esnek kümeler oluşturmayı ve yönetmeyi kolaylaştırır.

Hadoop ekosistemindeki uygulamalar ve çerçeveler

Hadoop genellikle MapReduce (yürütme framework’ü), YARN (kaynak yöneticisi) ve HDFS’yi (dağıtılmış depolama) içeren Apache Hadoop projesinin kendisini ifade eder. Dilerseniz yürütme altyapısı olarak Hadoop MapReduce yerine kullanılabilecek yeni nesil bir çerçeve olan Apache Tez’i de yükleyebilirsiniz. Amazon EMR, Hadoop’un Amazon S3’ü bir depolama katmanı olarak kullanmasına imkan tanıyan EMRFS bağlayıcısını da içerir.

Bununla birlikte, Hadoop ekosisteminde düşük gecikme süreli sorguları mümkün kılan araçlar, etkileşimli sorgulamaya yönelik GUI’lar, SQL gibi çeşitli arabirimler ve dağıtılmış NoSQL veritabanları dahil olmak üzere başka uygulama ve çerçeveler de vardır. Hadoop ekosistemi, temel Hadoop bileşenleri üzerinde ek işlevler oluşturmak için tasarlanmış birçok açık kaynak kodlu araç içerir ve Amazon EMR’yi kullanarak kümenizde Hive, Pig, Hue, Ganglia, Oozie ve HBase gibi araçları kolayca yükleyip yapılandırabilirsiniz. Ayrıca, Amazon EMR üzerinde Hadoop’a ek olarak bellek içi işleme için Apache Spark ya da etkileşimli SQL için Presto gibi başka çerçeveler de çalıştırabilirsiniz.

Hadoop: temel bileşenler

Amazon EMR, kümenizdeki düğümlerde Hadoop MapReduce, YARN ve HDFS ve Apache Tez dahil olmak üzere Hadoop projesi kapsamındaki uygulamaları programlama aracılığıyla yükler ve yapılandırır.

Hadoop ekosistemindeki Hadoop MapReduce ve Tez yürütme altyapıları, iş yüklerini işlemek için işleri Amazon EMR kümenizdeki düğümlere dağıtılabilecek küçük iş parçalarına bölen framework’leri kullanır. Bunlar kümenizdeki herhangi bir makinenin herhangi bir zaman başarısız olabileceği beklentisiyle, hata toleransı sağlayacak şekilde tasarlanmıştır. Bir görevi çalıştıran sunucu başarısız olursa görev Hadoop tarafından başka bir makinede çalıştırılıp tamamlanır.

Java dilinde MapReduce ve Tez programları yazabilir, Hadoop’u paralel bir şekilde kullanabilir, MapReduce ve Tez’den daha yüksek düzeyde soyutlama işlemleri için Hive ve Pig’den yararlanabilir ya da başka araçlar kullanarak Hadoop ile etkileşim kurabilirsiniz.

Hadoop 2’den itibaren kaynak yönetimi Yet Another Resource Negotiator (YARN) tarafından yönetilmektedir. YARN, kümenizdeki tüm kaynakları izler ve işleme işinizdeki görevlerin tamamlanması için bu kaynakların dinamik olarak ayrılmasını sağlar. YARN hizmeti Hadoop MapReduce ve Tez iş yüklerinin yanı sıra Apache Spark gibi diğer dağıtılmış framework’leri yönetebilir.

Amazon EMR kümenizde EMR File System’ı (EMRFS) kullanarak Amazon S3’ten Hadoop için veri aktmanınız olarak yararlanabilirsiniz. Amazon S3 yüksek oranda ölçeklenebilir, düşük maliyetli ve dayanıklılık için tasarlanmış olduğundan, büyük veri işleme için harika bir veri deposudur. Verilerinizi Amazon S3’te depolayarak işlem katmanınızı depolama katmanınızdan bağımsız hale getirebilir, böylece kümenizde küme içi depolamayı maksimum düzeye çıkarmak için ek düğümlere sahip olmak yerine Amazon EMR kümenizi iş yükleriniz için gerekli CPU ve bellek miktarına sahip olacak şekilde boyutlandırabilirsiniz. Ayrıca, Amazon EMR kümeniz boştayken maliyet tasarrufu sağlamak için kümeyi kapatabilirsiniz ve verileriniz Amazon S3’te kalır.

EMRFS, doğrudan Amazon S3’e yüksek performanslı bir şekilde, paralel olarak okuma ve yazma işlemleri gerçekleştirecek şekilde optimize edilmiş olmasının yanı sıra Amazon S3 sunucu tarafı ve istemci tarafı şifrelemeyle şifrelenmiş nesneleri işleyebilir. EMRFS, Amazon S3’ü veri gölünüz olarak kullanmanıza imkan tanır ve Amazon EMR’de Hadoop esnek bir sorgu katmanı olarak kullanılabilir.

Hadoop, dağıtılmış bir dosya depolama sistemi olan ve verileri kümenizdeki yerel disklerde büyük bloklar halinde depolayan Hadoop Distributed File System’ı (HDFS) da içerir, HDFS’nin yapılandırılabilir bir replikasyon faktörü (varsayılan olarak 3 kat) olduğundan, daha fazla erişilebilirlik ve dayanıklılıktan yararlanabilirsiniz. HDFS, bazı düğümler başarısız olup yenileri eklendikçe tüm kümelerinizde replikasyonu izler ve verilerinizi tüm düğümlerde dengeli hale getirir.

HDFS, Amazon EMR kümenizde Hadoop ile otomatik olarak yüklenir ve giriş-çıkış verilerinizi depolamak için Amazon S3 ile birlikte HDFS’yi kullanabilirsiniz. Bir Amazon EMR güvenlik yapılandırması kullanarak HDFS’yi kolayca şifreleyebilirsiniz. Ayrıca, giriş verileriniz Amazon S3’te olsa bile Hadoop, Amazon EMR tarafından Hadoop MapReduce işleriniz sırasında oluşturulan ara veriler için HDFS’yi ve yerel diski kullanacak şekilde yapılandırılır.

Amazon EMR Üzerinde Hadoop’un Avantajları

Dinamik ve hızlı bir biçimde yeni bir Hadoop kümesi başlatarak ya da mevcut Amazon EMR kümenize sunucu ekleyerek kaynaklarınızı kullanıcılarınızın ve veri bilimcilerinizin erişimine açmak için gerekli süreyi önemli ölçüde azaltabilirsiniz. AWS platformunda Hadoop kullanmanız, deneme ve yazılım geliştirme çalışmalarına kaynak ayırmak için gerekli maliyeti ve süreyi düşürerek kurumsal çevikliğinizi önemli ölçüde artırabilir.

Hadoop yapılandırması, ağ iletişimi, sunucu yükleme, güvenlik yapılandırması ve sürekli yönetici bakım işlemleri karmaşık ve zor etkinlikler olabilir. Amazon EMR yönetilen bir hizmet olarak Hadoop altyapısına ilişkin gereksinimlerinizi karşıladığından, siz asıl işinize odaklanabilirsiniz.

Hadoop ortamınızı Amazon S3, Amazon Kinesis, Amazon Redshift ve Amazon DynamoDB gibi diğer hizmetlerle kolayca entegre ederek AWS platformundaki geniş hizmet yelpazesinde veri taşıma, iş akışı ve analiz işlemlerini mümkün kılabilirsiniz. Ayrıca, Apache Hive ve Apache Spark için yönetilen bir meta veri deposu olarak AWS Glue Veri Kataloğu’nu kullanabilirsiniz.

Birçok Hadoop işi doğası itibarıyla sert dalgalanmalar gösterir. Örneğin, bir ETL işi saatlik, günlük veya aylık olarak çalıştırılabilirken finansal firmalar için modelleme işleri veya genetik sıralama işleri yılda yalnızca birkaç kez gerçekleştirilebilir. Amazon EMR üzerinde Hadoop kullanmanız, bu iş yükü kümelerini kolayca çalıştırmanıza, sonuçları kaydetmenize ve gereksiz altyapı maliyetlerini önlemek için artık gerekli olmayan Hadoop kaynaklarını kapatmanıza olanak sağlar. EMR 6.x, YARN NodeManager’ın ya doğrudan EMR kümesinde ya da Docker container’ının içerisinde containerları başlatmasını sağlayan Hadoop 3’ü destekler. Daha fazlası için lütfen belgelerimizi inceleyin.

Amazon EMR üzerinde Hadoop’u kullanarak kümelerinizi herhangi bir AWS bölgesinde, dilediğiniz sayıda Erişilebilirlik Alanında başlatma esnekliğine sahip olursunuz. Bir bölge veya alandaki olası bir sorun ya da tehdit, dakikalar içinde başka bir alanda küme başlatılarak kolayca savuşturulabilir.

Kapasitenin Hadoop ortamı dağıtılmadan önce planlanması genellikle hiç kullanılmayan pahalı kaynaklara ya da kaynak kısıtlamalarına yol açar. Amazon EMR ile dakikalar içinde gerekli kapasiteye sahip kümeler oluşturabilir ve EMR Yönetimli Scaling hizmetini kullanarak düğümlerin ölçeğini dinamik bir biçimde genişletip daraltabilirsiniz.

Hadoop ile büyük veri arasındaki ilişki nedir?

Hadoop büyük oranda ölçeklenebilir olduğundan, büyük veri iş yüklerinin işlenmesi için yaygın olarak kullanılır. Hadoop kümenizin işleme gücünü artırmak istiyorsanız, ortamınıza ihtiyaçlarınızın karşılanması için gerekli CPU ve bellek kaynaklarına sahip sunucular ekleyin.

Hadoop, hesaplamalı analitik iş yüklerini paralel olarak çalıştırma becerisinden ödün vermeksizin yüksek bir dayanıklılık ve erişilebilirlik düzeyi sunar. Erişilebilirlik, dayanıklılık ve işleme ölçeklenebilirliğinin bir araya gelmesi, Hadoop’u büyük veri iş yükleri için doğal olarak uygun bir seçim kılar. Amazon EMR’yi kullanarak dakikalar içinde Hadoop çalıştıran Amazon EC2 bulut sunucularından bir küme oluşturup yapılandırabilir ve verilerinizden değer elde etmeye başlayabilirsiniz.

Kullanım örnekleri

Apache ve Hadoop, Apache Software Foundation’ın ticari markalarıdır.

Hadoop, kullanıcıların segmentlere ayrılması ve kullanıcı tercihlerinin anlaşılması amacıyla tıklama akışı verilerinin analiz edilmesi için kullanılabilir. Reklamcılar da tıklama akışlarını ve reklam izlenimi günlüklerini analiz ederek daha etkili reklamlar sunabilir.

Razorfish'in tıklama akışı analizi için Amazon EMR üzerinde Hadoop’u nasıl kullandığını öğrenin

Hadoop, web uygulamaları veya mobil uygulamalar tarafından oluşturulan günlüklerin işlenmesi için kullanılabilir. Hadoop, petabaytlarca yapılandırılmamış veya yarı yapılandırılmış veriyi, uygulamalarınız veya kullanıcılarınız için kullanışlı öngörülere dönüştürmenize yardımcı olur.

Yelp'in Amazon EMR üzerinde Hadoop’u kullanarak önemli web sitesi özelliklerini nasıl geliştirdiğini öğrenin

 

Hadoop ekosistemindeki Hive gibi uygulamalar, kullanıcıların bir SQL arabirimiyle Hadoop MapReduce’u kullanmasına olanak tanıyarak çok büyük ölçekte analitiğin yanı sıra dağıtılmış ve hata toleranslı veri ambarı kullanımını mümkün kılar. Verilerinizi depolamak için Hadoop‘u kullanın ve kullanıcıların veri boyutundan bağımsız olarak sorgu göndermesine olanak tanıyın.

Netflix’in Amazon EMR üzerinde Hadoop kullanarak nasıl petabayt ölçeğinde bir veri ambarı çalıştırdığını izleyin

Hadoop, çok yüksek miktarlardaki genomik verilerini ve diğer büyük bilimsel veri kümelerini hızla ve verimli bir şekilde yönetmek için kullanılabilir. AWS, 1000 Genomes Project verilerini ücretsiz olarak topluluktaki herkesin erişimine sundu.

AWS’de Genomik hakkında daha fazla bilgi edinin

 

Hadoop, çok büyük oranda ölçeklenebilir olması ve düşük maliyetleri göz önünde bulundurulduğunda aşağı akış sistemleri tarafından daha kolay tüketilmesi için büyük veri kümeleri toplayıp bunları sıralama, birleştirme ve toplu hale getirme gibi yaygın olarak kullanılan ETL iş yükleri için idealdir.

Euclid’in ETL ve veri toplama için Amazon EMR üzerinde Hadoop’u nasıl kullandığını öğrenin