Big Data’ya giriş : Hadoop ve Hadoop Bileşenleri

Kadir Alan
4 min readNov 14, 2017

Bu yazımda big data denilince akla gelen ilk şey olan Hadoop ve Hadoop bileşenlerini anlatmaya çalışacağım.

HDFS(Hadoop Distributed File System) nedir?

Sıradan sunucuların disklerini bir araya getirerek büyük ve sanal bir disk oluşturan dosya sistemidir. Bu sayede çok büyük boyuttaki dosyaları sistemde saklayabilir ve işlenmesine olanak sağlar.

Hadoop Nedir?

RDBMS(Relational Database Management System) yani ilişkisel veri tabanı yönetim sistemlerinden farklı olarak verileri tek bir bilgisayarda tutmayıp gelen verileri -her birinin kendine ait işlemcisi ve rami- olan Node’lerde(küme) HDFS dosya sistemi ile denormalize bir şekilde veriyi saklayan ve işlenmesine olanak sağlayan açık kaynak kodlu kütüphanedir.

Hadoop verileri nasıl işler?

Node’lerde yer alan verileri merkeze toplayıp işlemek yerine SQL diline yakın sorguları Node’lere dağıtarak Node’lerde gerekli işlemi gerçekleştirir. Çünkü her Node’nin kendisine ait işlemcisi ve rami vardır. Bunu yapmasının sebebi ise veriyi merkeze çekip trafik oluşturmamak.

Hadoop’un dağıtık veri işleme modeli : Map-Reduce

Tüm verileri merkeze toplamadığımız için bütün işlemler ayrı ayrı Node’lerde yapılır. Bu işlemler bittikten sonra her Node’den dönen cevap alınır ve toplam sonuç oluşturulur. Bu işlemler bütüne Map-Reduce denir. Map-Reduce işlemlerinin nasıl gerçekleştiğini basitçe 6 adımda inceleyelim.

Map-Reduce Nasıl Çalışır? 6 Adımda Map-Reduce…

1- Input : Veri girişlerinin yapıldığı adımdır.

2-Splitting : Gelen veriler bu aşamada işlemesi daha kolay olabilmesi için parçalara bölünür.

3-Mapping: Veriler bu aşamada ilgili düğümlerede dağıtılır ve kaç tane yedeği olacağı bu adımda belirtilir. Ve daha sonrasında ver ilgili düğümde işlenir.

4-Shuffling : Her düğümde verilerin sayma işlemi yapılır. Örneğin bir text dökumanını input olarak verdiysek ve sonuç olarak hangi kelimenin kaç defa geçtiğini arıyorsak bu aşamada kelime sayıları Node’lerde belirlenir.

5-Reducing: Her Node’den gelen sonuç bu aşamada toplanır.

6:Final Result: Sonuçlar artık elimizdedir. Bunun raporlamasını yapabiliriz.

Neden Hadoop?

Çünkü veri çok fazla… Veriyi tek bir bilgisayarda RDBMS yöntemiyle tutamıyoruz. Veriyi işlemek bi yana verinin tutulması için bile HDFS dosyalama sistemine ihtiyaç vardır.
HDFS ile verinin saklanması ve yedeklenmesi çözülürken büyük veriyi işleme problemi ortaya çıkmıştır. Bunun için Hadoop ekosistemi ve HDFS için araçlar geliştirilmiştir.

Temel Hadoop Bileşenleri Nedir?

En temel Hadoop Bileşenleri HDFS, Map-Reduce ve YARN’dır.

Hadoop’un dezavantajları var mıdır? Varsa nelerdir?

  • Hadoop’un hiç tartışılmaz avantajları çok. Peki hiç mi dezavantajı yok? Var elbette…
  • Hadoop veriyi kopyalayarak yedeklemeye ihtiyaç duyduğundan dolayı ihtiyaç duyulan alanı arttırıyor.
  • Temel Hadoop bileşenlerinin klasik SQL sorgularına sahip olmaması bir eksiklik olarak görülebilir.
  • Veriyi saklarken ağ üzerinde şifrelemediği için güvenlik anlamında yeterli değildir.
  • Hadoop’un temel bileşenleri olan YARN, HDFS ve Map-Reduce yeterli değildir.

Hadoop Bileşenleri Nelerdir? Ne için kullanılırlar?

Bu bileşenleri size aktarırken kullanım alanlarına yönelik olarak aktarmaya çalışacağım.

Data Access: Pig, Hive
Data Storage: HBase, Cassandra
Interecation, Visualization, Execution, Development : HCatalog, Lucene, Hama, Crunch
Data Serialization: Avro, Thrift
Data Intelligence: Drill, Mohout
Data Integration: Sqoop, Flume, Chuwka
Management: Ambari(Portal)
Monitoring: Zookeeper
Orchestration: Oozie

Bunlardan bazılarına değinelim.

Spark nedir?

Spark denilince aklımıza gelen ilk şey In-Memory çalışıyor olmasıdır. Map-Reduce veriyi disk ile ram arasında götürüp getirdiği için Spark’a göre daha yavaştır çalışır. Spark HDFS’ye erişir ama dağıtık işleme modeli değil de kendi In-Memory modelini uygular. Python, R, Scala gibi arayüzleri destekleyerek SQL dilini kullanır.
Güçlü yanları ise şu alanlardır;

  • Streaming veri işleme
  • Grafik veri işleme
  • Ölçeklenebilir/Dağıtık Machine Learning Algoritmaları

Hive nedir?

Hive HQL olarak bilinen bir SQL’e çok benzer bir dil ile Hadoop sistemlerinde verilere erişim ve sorgulama gibi işlemleri gerçekleştirir. Gerçek zamanlı sorgulama yapamaz.

Pig: HDFS üzerindeki verinin işlenmesinden sorumludur. Karmaşık veri dönüşüm işlemlerini Java’ya ihtiyaç duymadan Latin gibi betik/script dili ile gerçekleştirmemizi sağlayan Hadoop bileşenidir. Yapısal olan ve yapısal olmayan veriler üzerinde çalışarak veriyi HDFS’de saklayabilir. Hadoop üzerindeki veriyi paralel bir şekilde işler. Peki bunu nasıl yapıyor?
Pig, Latin dilini kullanıyor. Latin dilinde yazılmış görevleri otomatik olarak Java/Map-Reduce görevine çevirir. Kısa tabiriyle Pig, Latin Scriptleri YARN üzerinde çalışan Map-Reduce fonksiyonlarına çevirir. Böylece HDFS Node’leri üzerindeki veri işlenmiş olur.

HBase nedir?

HDFS üzerinde çalışan bir NoSQL veritabanı yönetim sistemidir. SQL desteği sunmaz. Bir HBase sistemi bir grup tablolardan oluşur ve tablolara erişmek için bu tablolarda birincil anahtar kullanılır.

Sqoop nedir?

Yapısal verilerin ETL(Extract/Transform/Load) ile Hadoop’a aktarılması için kullanılır. Bir komut satırı arayüzüne sahiptir.

Ambari nedir?

Hadoop Node’lerini yönetmek için kullanılan web arayüzüdür.

Flume nedir?

Streaming verilerin toplanması ve birleştirilmesi için kullanılır.

Kafka nedir?

Bir mesajlaşma servisidir. Veriyi Hadoop’a stream olarak aktarırı.

HCatalog nedir?

HDFS sisteminde kayıtlı olan her verinin konumunu ve şema bilgisini tutar. Pig Latin dili bu araç üzerinden HCatLoader(okuma) HCatStorer(Yazma) API’leri ile HCatalog tarafından yönetilen tablolara okuma yazma yapar.

Desteklerini esirgemeyen hocam Doç. Dr. Akın Özçift’e teşekkür ederim.

--

--