IT & IoT Security | Cloud | It's all about the life itself

Nothing in life is as important as you think it is, while you are thinking about it.

Microsoft Azure HDInsight ile Hadoop Cluster Kurulumu

Merhaba,

Önceki yazımda Hadoop Cluster kurulumu,yönetimi,gözlenmesi gibi süreçleri basitleştirerek yönetmenizi sağlayan Apache Ambari kurulumundan bahsetmiştim. Ambari web ui arabiriminden, node’larınızı ekleyerek Hadoop cluster’ını oluşturabilirsiniz. Azure yönetim konsolundan erişebileceğiniz HDInsight servisi, Hadoop cluster kurulumu için otomatize edilmiş süreçleri ve ortamı sunmaktadır. Hand-on demo’dan önce hadoop’tan biraz bahsedebiliriz.

Hadoop 2011’de duyurulmuş, çok büyük veri kümelerini işlemek için Java(bazı native C komutları ile) dilinde yazılmış açık kaynak kodlu bir “framework” ‘tür. Yüksek işlem gücü için mevcut “computing” donanımlarını kullanması önemli özelliklerinden biridir. Yüksek maliyet ile yüksek “compute” gücü sunan özel donanıma sahip sunucular yerine; “commodity hardware(commodity computing)” bileşenlerini kullanarak düşük maliyet ile yüksek işlem gücü sunar. Hadoop’u temel(core) bileşenleri hadoop distributed file system(storage) ve MapReduce(bilgi işleme) bileşenleridir. Hadoop, dosyaları bloklara böler ve cluster’daki node’lar arasında dağıtır.Verinin parallel olarak işlenmesi için MapRedure bileşeni çalışır.Apache Hadoop framework’ü temel olarak aşağıdaki şu modüllerden oluşur.

Hadoop common(araçlar ve kütüphaneler), HDFS(dosya sistemi), Hadoop Yarn(“computing” kaynakları yönetmek için kaynak yönetiminden sorumlu platform), Hadoop MapReduce( büyük ölçekli verileri işlemek için kullanılan programlama modeli). Hadoop ekosisteminde bu modüllerin dışında; Pig,HBase,Hive,Spark,Oozie vb. modüller mevcuttur.

Hadoop kullanan şirketlere facebook ve yahoo örnek verilebilir. Hadoop ekosistemi geleneksel veri merkezlerine kurularak kullanılabildiği gibi bulut servisi şeklinde de kullanılabilir. Bulut servis sağlayıcıları olarak Azure, AWS, GCE, Bluemix tercih edilebilir.

Yazımın devamında Azure HDInsight ile Hadoop cluster’ının teşkil edilmesini inceleyeceğim. Azure HDInsigh servisi farklı veri analitiği iş yükleri için farklı cluster tiplerinin kurulumuna olanak sağlıyor. Sorgu(query) ve Analiz iş yükleri için Hadoop cluster, NoSQL iş yükleri için HBase cluster, gerçek zamanlı “event processing” iş yükleri için Storm cluster tipini oluşturup kullanabilirsiniz . HDInsight servisi üzerinde teşkil edeceğiniz bu cluster tipleri farklı sayıda node’lar içeriyor. Azure müşterileri cluster’ın yaşamı bulunca çalışan node’lar üzerinden ücretlendiriliyor. Ücretlendirme cluster çalışmaya başladığın andan itibaren başlıyor. Cluster “silinene” kadar devam ediyor. De-allocation ve on hold yapılamıyor. Cluster’ınızı silmediğiniz sürece ücretlendirme devam ediyor 🙂

Hadoop cluster’da heap node(iki node) ve data node(en az 1 node) roller mevcut. HBase cluster’da heap server(iki node), region server(en az bir node), master/zookeeper node(en az üç node) roller mevcut. Storm cluster’da nimbus node(iki node), supervisor server(en az bir node), zookeeper node(üç node) roller mevcut. İhtiyaçlarınıza orantılı olarak node sayılarını arttırmak isteyebilirsiniz. Storage ve Data Transfer ücreti, ayrı şekilde faturanıza yansıyor. Kaynaklar kısmında ücretlere dair bir adres paylaştım. Örneğin üç node’lu bir Hadoop cluster için ~414 TL/AY ile ~13467 TL/AY lik bir ücret aralığı mevcut.

Azure Yönetim konsolundan aşağıda gösterilen kısımdan başlayabiliriz.

clip_image002

Custom kurulum için de üstteki seçeneklerden uygun olanı ile devam edebilirsiniz. Custom kurulum’da Hadoop sürümünü seçebilirsiniz(2.4 , 2.6 vb.). Onun dışında custom kurulum ile pre-defined kurulum arasında fark yok(ileride değişebilir!)

Kurulum tamamlandıktan sonra Azure > HDInsight altından cluster’a erişebilirsiniz ve detayları kontrol edebilirsiniz.

clip_image004

Query console butonu sizi web based query console’a götürecek.

clip_image006

Giriş için, Hadoop cluster kurulumu sırasında belirlediğiniz parolayı kullanıyorsunuz. Kullanıcı ismi “admin” ‘dir.

clip_image008

Eriştiğiniz web console’undan , bu hizmeti test etmeye ve kullanmaya başlayabilirsiniz. Hadoop cluster’ın Azure HDInsight ile Linux sisteme kurulumu da mümkün. An itibarıyla preview aşamasında! İkinci hadoop cluster’ını da preview aşamasındaki Linux sistemine kurdum. Kurduğum cluster’ların genel bilgileri aşağıdaki gibidir.

clip_image010

Linux sistem üzerine kurulan Hadoop cluster’ın yönetimi için de web ui arabirimini kullanıyorsunuz. Linux sistemi üstte görüldüğü üzere Ubuntu dağıtımı üzerine kuruldu. Azure HDInsight servisi, kurulum sürecininde otomatik olarak apache ambari server kurulumunu ve gereken yapılandırmalarını tamamlayıp node’ları Hadoop cluster’a dahil ediyor. Ambari web konsolu üzerinden Hadoop cluster’ınıza erişebilirsiniz.

clip_image012

Burada iki aşamalı authentication mevcut. Öncelikle Azure authentication’dan geçeceksiniz. Burada gereken username ve password, HDInsight ile Hadoop cluster kurulumu sihirbazında belirlediğiniz parametreler olacak.

clip_image014

İkinci aşamada apache amabari ‘nin form based authentication yapısı size karşılıyor. Burada size sorulan parametreler varsayılan olarak gelen değerdir(kullanıcı ismi admin, parolası admin,ileride değişebilir). Sisteme giriş yaptığınızda aşağıdakine benzer bir görüntü ile karşılaşacaksınız.

clip_image016

Sisteme yeni bir servis eklemek için action menüsünden add service ile aşağıdaki sihirbazı açabilirsiniz.

clip_image018

Eklemek istediğiniz servisleri, ortamınızın yapısı ve uygunluğu doğrultusunda ekleyebilirsiniz. Falcon servisini ekledim. Servis ekleme işleminden sonra diğer bazı servislerin yeniden başlatılması gerekti. Gereken servisleri yeniden başlatmadan devam etmeyiniz.

clip_image019

Servis ekleme sihirbazı da servis ekleme işleminden sonra sağında çift eğirsel ok olan servisleri yeniden başlatmanız konusunda sizi uyarıyor.

Apache Ambari kurulumu ve yapılandırmalarından önceki yazımda bahsetmiştim. Geleneksel data center’a(on-premise tarafında) benzer bir kurulum yapmak isterseniz manual yapılandırmalar gerekecektir. Azure HDInsight servisi ile hadoop cluster’ın kurulması(windows veya linux üzerinde) hızlıca gerçekleşebiliyor. Tabii ki servisin maliyetini göz önüne almak gerekir :). Sizin yapmak istediğiniz işe bağlı olarak; Azure HDInsight servisiyle windows üzerine kurulan hadoop cluster ile linux üzerine kurulan hadoop cluster, yönetimsel ve/veya işlevsel açıdan aynı esneklikte olmayabilir.

Bulut servisleri için maliyet analizi ilk başta yüksek görünecektir fakat geleneksel veri merkezlerinden bu tür sistemlerin(Hadoop,hbase,storm vb.) kurulumu,yönetimi ve genel maliyeti göz önüne alındığında düşünceleriniz farklılaşabilir. Bence Anlık veya kısa süreli ihtiyaçlarda bulut servislerinden faydalanmak daha avantajlı olacaktır!

Herkese sorunsuz ve neşeli günler dilerim.

Kaynaklar:

http://azure.microsoft.com/en-gb/pricing/details/hdinsight/

https://cwiki.apache.org/confluence/display/AMBARI/Install+Ambari+2.0.1+from+Public+Repositories

https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.0.1

https://github.com/apache/ambari/blob/trunk/ambari-server/docs/api/v1/index.md

https://cwiki.apache.org/confluence/display/AMBARI/Ambari

https://issues.apache.org/jira/secure/attachment/12559939/Ambari_Architecture.pdf

http://askubuntu.com/questions/465183/how-to-convert-rsa-key-to-pem-using-x-509-standard

http://www.firedaemon.com/blog/passwordless-root-ssh-public-key-authentication-on-centos-6

https://en.wikipedia.org/wiki/Apache_Hadoop

https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-tutorial-get-started-windows/