Hadoop Nedir? Bileşenlerini Tanımaya Başlayalım 2

Birol EMEKLİ
2 min readDec 25, 2020

Bir önceki makalede Hadoop nedir ve bileşenlerinden HDFS ve MapReduce değinmiştik. Bu makale ise şu bileşenlere değineceğiz.

1. Hadoop Bileşenleri

  • HDFS (Başka bir makalede link)
  • MapReduce (Başka bir makalede link)
  • HBase
  • Pig
  • Hive
  • ZooKeeper

1.1. HBase

HDFS dosya sistemi üzerine inşa edilmiş, gerçek zamanlı okuma yazma erişimi olan, dağıtılmış, hataya dayanıklı, ölçeklenebilir, ilişkisel olmayan yani noSQL bir veri tabanıdır. HBase, rasgele gerçek zamanlı okuma/yazma işlemleri için büyük veritabanlarında kullanılabilmektedir.

HBase’de SQL sorgu dili desteği bulunmamaktadır fakat Hive ile yazılmış SQL sorgularının erişimi için geliştirilen bir Hive/HBase projesi bulunmaktadır. HBase küme yönetimi için ZooKeeper kullanmaktadır.

1.2. Pig

Pig, Hadoop üzerinde çalışan MapReduce programları oluşturma için kullanılan yüksek seviyeli bir Apache projesidir. Verilerin toplu olarak işlenmesi için tasarlanan bu programlama dili, daha az satır kod yazarak geliştirme ve test süresini azaltmaktadır. Bu programlama dili ile daha az kod yazarak işlem gerçekleştirilir fakat yürütme hızında daha yavaş olduğu görülmektedir.

https://lh3.googleusercontent.com/proxy/I5cZEQ3JMEt8hE7V3BqRFg9NIeGx9Pe9rPuy4FyfH3-eUB--FGVrOv4tUhsjLC88l8HLC9YTDa7ChhmNhctgo2lFdq4bll7vL_jWUHeOviLrygc

1.3. Hive

Facebook tarafından geliştirilen ve SQL türü sorgu dili ile Hadoop’u sorgulamak için tasarlanmış bir veri ambarı teknolojisidir. Hadoop üzerine inşa edilmiş bu programlama dili HiveQL ile kullanıcılar tabloları ve sütunları tanımlar. Veriler tanımlanan bu tablolara yüklenir ve buradan okunurlar. SQL benzeri programlama dili kullanan HiveQL ile analizler, raporlar, özetler oluşturulabilmektedir. HiveQL ile oluşturulan sorgular MapReduce işlemi başlatırlar ve toplu işleme için uygundur fakat Hive gerçek zamanlı sorgulamalar yapamazlar.

1.4. ZooKeeper

Dağıtık sistemleri senkronize etmek için kullanılan Apache lisanslı açık kaynaklı bir projedir. Yüksek performanslı, ölçeklenebilir bu yazılım projesi ile eşitleme, adlandırma ve konfigürasyon yönetimi gibi üst düzey hizmetler dağıtık sistemlerde uygulanabilmektedir.

https://www.allprogrammingtutorials.com/images/apache-zookeeper.png

En güzel özelliklerinden birisi de her sunucuda aynı anda birden fazla istemci bağlantısını yönetebilmesidir. Her istemci canlı olduğunu bilmek ve sunucuya bağlı olduğundan emin olmak için ZooKeeper sunucusuna sinyal gönderirler. Eğer bu sinyal işleminde bir süre sunucudan cevap alınmazsa, istemci kümedeki başka bir sunucuya bağlanır.

--

--

Birol EMEKLİ

Systems Administrators | DevOps | ML & DP | Python | Django