HDFS ve YARN Komutları: Temel İşlevler ve Kullanım Örnekleri

Mehmet_ISIK
14 min readSep 27, 2024

--

İçindekiler

  1. Giriş
  2. Hadoop Cluster Kurulumu
  • 2.1. Çalışma Klasörünün Oluşturulması
  • 2.2. docker-compose.yaml Dosyasını Klasöre Taşıma
  • 2.3. Docker Hub’a Bağlanma
  • 2.4. Gerekli Docker İmajlarının Çekilmesi
  • 2.5. Docker Compose ile Hadoop Cluster’ı Başlatma
  • 2.6. Konteynerlerin Durumunu Kontrol Etme
  • 2.7. Hadoop Cluster’a Bağlanma
  • 2.8. HDFS Kontrolünün Yapılması

3. HDFS Komutları: Dosya ve Dizin Yönetimi

  • 3.1. ls: Dosya ve Dizin Listeleme
  • 3.2. mkdir: Dizin Oluşturma
  • 3.3. put: Dosya Yükleme
  • 3.4. mv: Dosya Taşıma
  • 3.5. cp: Dosya Kopyalama
  • 3.6. chown: Sahipliği Değiştirme
  • 3.7. chmod: İzinleri Değiştirme
  • 3.8. get: Dosya İndirme
  • 3.9. du: Dizin Boyutunu Görüntüleme
  • 3.10. rm: Dosya ve Dizin Silme
  • 3.11. Dosya İçeriğini Okuma
  • 3.12. fsck: HDFS Sağlık Kontrolü
  • 3.13. appendToFile: Dosyaya Veri Ekleme
  • 3.14. test: Dosya Varlık Kontrolü
  • 3.15. dfsadmin -report: HDFS Raporu
  • 3.16. count: Dosya ve Dizin Sayısı
  • 3.17. HDFS Balancer: Dengeleme İşlemi

4. YARN Komutları: Uygulama İzleme ve Yönetimi

  • 4.1. yarn application -list: Uygulamaları Listeleme
  • 4.2. yarn application -status: Uygulama Durumunu Görüntüleme
  • 4.3. yarn application -kill: Uygulama Sonlandırma
  • 4.4. yarn logs: Uygulama Loglarını Görüntüleme
  • 4.5. yarn node -list: Tüm Nodları Listeleme
  • 4.6. yarn node -status: Nod Durumunu Görüntüleme
  • 4.7. yarn container -list: Uygulama Konteynerlerini Listeleme
  • 4.8. yarn top: YARN Cluster’da Kaynak İzleme
  • 4.9. yarn node -details: Nod Detayları
  • 4.10. yarn rmadmin -refreshNodes: YARN Nodlarını Yenileme
  • 4.11. yarn logs > file.log: Uygulama Loglarını Dosyaya Kaydetme
  • 4.12. yarn applicationattempt -list: Uygulama Denemelerini Listeleme

5. Sonuç ve Kapanış

1. GİRİŞ

Hoşgeldiniz!

Büyük veri dünyasında veri yönetimi ve kaynak izleme, her geçen gün daha da karmaşık hale geliyor. Bu süreçlerde etkin bir yönetim sağlamak, güçlü araçlar ve komutlar kullanmayı gerektiriyor. Hadoop ekosisteminin en kritik bileşenlerinden olan Hadoop Distributed File System (HDFS) ve YARN, büyük veri kümelerinin yönetimi ve işlenmesinde esneklik ve ölçeklenebilirlik sağlıyor. Eğer HDFS ve YARN’in işlevleri hakkında daha detaylı bilgiye ihtiyaç duyarsanız, Hadoop Ekosistemine Giriş: HDFS, MapReduce ve YARN başlıklı yazımı inceleyebilirsiniz. Bu yazımızda ise HDFS ve YARN üzerinde en sık kullanılan komutları, ne işe yaradıklarını ve nasıl kullanıldıklarını detaylı bir şekilde inceleyeceğiz. Adım adım ilerleyerek veri yönetimi ve uygulama izlemede bu güçlü araçlardan nasıl faydalanabileceğinizi göstereceğiz.

Resim — 1: HDFS YARN

2. Hadoop Cluster Kurulumu

İlk adım olarak, Docker Compose kullanarak Hadoop cluster kurulumunu gerçekleştireceğiz. Bu işlem için Docker Hub’dan Hadoop ve ilgili servisler için gerekli imajları çekecek ve çoklu düğümlü bir Hadoop cluster oluşturacağız.

2.1. Çalışma Klasörünün Oluşturulması

İlk olarak bu projemizde, içerisinde çalışacağımız bir klasör oluşturma ile başlayacağız.

Terminali açıp aşağıdaki komutları yazıp enter tuşuna basıyoruz.

mkdir deneme01

Oluşturduğumuz dosyanın içerisine girmek için aşağıdaki komutu da yazıp enter tuşuna basıyoruz.

cd deneme01/

Son olarak oluşturduğumuz dosyanın içerisinde ne var ne yok kontrol etmek için aşağıdaki komutu da terminale yazıp enter tuşuna basıyoruz.

ll

Resimde de görüleceği üzere hatasız bir şekilde deneme01 isminde bir klasör oluşturduk. İçerisine girip ne var ne yok kontrol ettik. Bir sonraki adım ile devam ediyoruz.

2.2. docker-compose.yaml Dosyasını Klasöre Taşıma

Daha önceden dışarıda oluşturmuş olduğumuz docker-compose.yaml dosyasını bir önceki adımda oluşturduğumuz deneme01 isimli klasörümüze sürükleyip taşıyoruz.

Resimde de görüldüğü üzere başaralı bir şekilde çalışacağımız deneme01 isimli klasörün içerisine taşıdık. Bir sonraki adım ile devam ediyoruz.

2.3. Docker Hub’a Bağlanma

Bu adım da docker hub’a bağlanacağız. Hadoop cluster’ı oluşturmak için gerekli olan yazılımları içeren bir konteyner imajını, yani Docker imajlarını çekmek için Docker Hub’a giriş yapmamız gerekiyor.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

docker login

Daha sonra username (kullanıcı adı) ve password (şifre) bilgileri girip enter tuşuna basıyoruz.

Resimde de görüleceği üzere Login Succeeded ibaresi ile docker hub’a başarılı bir şekilde bağlandığımızı görmekteyiz. Daha önce bağlandığım için be çıkış yapmadığım için mevcut bilgiler ile bağlandım diyor. eğer Bağlı olmasaydı aşağıdaki gibi bir ekran ile karışılacaktık.

2.4. Gerekli Docker İmajlarının Çekilmesi

Bu adımda Hadoop cluster için gerekli Docker imajını Docker Hub’dan çekeceğiz.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

docker pull veribilimiokulu/ubuntu_hadoop_hive_sqoop:3.0

Resimde de görüldüğü üzere docker hub’tan imaj başarılı bir şekilde indirilmiş ve kullanıma hazır durumda. Ben daha önceden indirdiğim için bu şekilde görünüyor. İlk defa indirecek olsaydım aşağıdaki gibi bir ekran ile karşılaşacaktık.

2.5. Docker Compose ile Hadoop Cluster’ı Başlatma

Şimdi, Hadoop cluster’ı başlatmak için Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz. Bu adımda, NameNode ve iki DataNode konteyneri başlatılacak.

docker-compose up -d

Resimde de görüldüğü üzere komutu doğru dizin içerisinde çalıştırdığımızda docker-compose.yaml dosyası kullanılırak bütün PostgreSQL ve Hadoop (NameNode ve DataNode’lar) için gerekli Docker imajları Docker Hub’dan indirildi. Daha sonra PostgreSQL, Hadoop NameNode (cluster-master), ve iki Hadoop DataNode (cluster-slave-1, cluster-slave-2) konteynerleri oluşturuldu. Tüm bu konteynerler başarıyla başlatıldı ve çalışır duruma getirildi.

2.6. Konteynerlerin Durumunu Kontrol Etme

Son olarak, başlatılan Hadoop cluster konteynerlerinin doğru çalışıp çalışmadığını kontrol etmek için terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

docker ps

Resimde de görüldüğü üzere tüm konteyneyler başarılı bir şekilde başlatılmış durumda.

2.7. Hadoop Cluster’a Bağlanma

HDFS üzerinde işlemler yapabilmek için öncelike indirip çalıştırdığımız Hadoop cluster’ında cluster-master adındaki konteynere bağlanacağız.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

docker exec -it cluster-master /bin/bash

Resimde de görüldüğü üzere cluster-master konteynerine (Hadoop NameNode) başarılı bir şekilde bağlandık. Artık cluster-master konteyneri içinde komut çalıştırabilecek durumdayız.

2.8. HDFS Kontrolünün Yapılması

Aşağıdaki adımlarda HDFS ve YARN komutlarını denemeye başlayabiliriz.

Bu işlemlere adımlara başlamadan önce son bir kez daha HDFS’in düzgün çalışıp çalışmadığını kontrol etmek için terminale aşağıdaki komutu yazıp enter duşuna basıyoruz.

hdfs dfsadmin -report

Resimde de görüleceği üzere HDFS’in durumu oldukça iyi görünüyor! Raporda üç adet “Live DataNode” var, bu da HDFS cluster’ının düzgün çalıştığını gösteriyor. DFS Remaining ve DFS Used değerleri doğru raporlanıyor, bu nedenle sistemin sağlıklı olduğunu söyleyebiliriz.

Şimdi HDFS komutlarını sırasıyla denemeye başlayabiliriz.

3. HDFS Komutlarının Çalıştırılıp Denenmesi

3.1. ls: Dosya ve Dizin Listeleme

İlk olarak, root dizinindeki (HDFS root) dosya ve dizinleri listeleyelim.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -ls /

HDFS root dizininde bulunan dosya ve dizinleri listeledik. Görüldüğü üzere, /apps dizini listelenmiş durumda. Bu dizin root dizini altında mevcut olan tek içeriği göstermektedir.

3.2. mkdir: Dizin Oluşturma

HDFS üzerinde yeni bir dizin oluşturur. -p seçeneği, eğer ara dizinler eksikse onları da otomatik olarak oluşturur.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz:

hdfs dfs -mkdir -p /user/train/play-hdfs-commands

Görüldüğü gibi mkdir komutuyla HDFS üzerinde yeni bir dizin oluşturduk ve -ls komutu ile de kontrolünü sağladık.

3.3. put: Dosya Yükleme

Bu komut, yerel dosya sisteminden HDFS’e dosya yüklemek için kullanılır. Örneğin, yerel bilgisayarındaki bir dosyayı HDFS’teki belirli bir dizine yükleyebilirsin.

Bilgi: windows masa üstündeki bir dosyayı direk olarak HDFS yüklerken path uyumsuzluğu alabiliriz. Bu durumun yaşanmaması için HDFS’e yükleyeceğimiz dosyayı önce Linux makinemize oradan da yukarıdaki komut ile HDFS’e yollayabiliriz.

ornek01 dosyamızı masa üstünden alıp sürükleyip linux makinemize taşıdık.

Dosyayı sürükle bırak: Yerel bilgisayarınızda bulunan ornek01.txt dosyasını, sanal makinedeki (Linux) bir dizine sürükleyip bıraktık.

Docker cp komutu: Daha sonra, bu dosyayı sanal makineden cluster-master adlı Hadoop konteynerine kopyalamak için docker cp komutunu kullandık. Bu aşamada dosya Hadoop'un master nodu üzerindeki /root/ dizinine kopyaladık. (docker exec -it ile konteynere de bağlandık)

HDFS komutu ile yükleme: Son adımda, Hadoop’taki ornek01.txt dosyasını HDFS (Hadoop Distributed File System) üzerine yüklemek için hdfs dfs -put komutunu kullandık. Bu işlem ile dosya, HDFS üzerindeki /user/train/play-hdfs-commands/ dizinine yükledik.

Resimde de görüldüğü üzere başarılı bir şekilde put komutunu kullanarak öğrenmiş olduk. Yaptığımız işlemin bir gösterimi de aşağıda yer almaktadır.

  1. docker cp /home/train/deneme01/ornek01.txt cluster-master:/root/
  2. docker exec -it cluster-master /bin/bash
  3. hdfs dfs -put /root/ornek01.txt /user/train/play-hdfs-commands/

3.4. mv: Dosya Taşıma

Bu komut, HDFS üzerindeki bir dosyayı başka bir dizine taşımak için kullanılır. Örneğin, bir dosyayı belirlediğimiz dizine taşıyabiliriz.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -mv /user/train/play-hdfs-commands/ornek01.txt /user/train/

Dizini kontrol etmek için ise aşağıdaki komutu terminale yazıp enter tuşuna basıyoruz.

hdfs dfs -ls /user/train/

HDFS içerisinde yer alan /user/train/play-hdfs-commands/ dizinindeki ornek01.txt dosyasını bir üst dizine, yani /user/train/ dizinine taşıdık. Dosya fiziksel olarak aynı HDFS dosya sistemi içinde kalıyor, sadece dizin değiştirilmiş oldu.

İkinci komut ile dizini kontrol ettiğimizde, dosyanın başarıyla /user/train/ dizinine taşındığını görüyoruz.

3.5. cp: Dosya Kopyalama

Bu komut, HDFS üzerinde bir dosyayı belirtilen dizine kopyalamak için kullanılır.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -cp /user/train/ornek01.txt /user/train/play-hdfs-commands/

Dizini kontrol etmek için ise aşağıdaki komutu terminale yazıp enter tuşuna basıyoruz.

hdfs dfs -ls /user/train/play-hdfs-commands/

Resimde de görüldüğü gibi, /user/train/play-hdfs-commands/ dizininde ornek01.txt dosyası kopyalanmış. Bu, orijinal dosyanın /user/train/ornek01.txt dizininden hedef dizine kopyalandığını doğruluyor.

3.5. chown: Sahipliği Değiştirme

Bu komut, belirtilen HDFS dosya veya dizininin sahipliğini değiştirmek için kullanılır.

Öncelikle terminale aşağıdaki komutu yazıp sistemdeki kullanıcı adı ve grup bilgisini öğreniyoruz.

whoami

groups <kullanıcı_adı>

kullanıcı adı kısmına whoiam komutundan gelen bilgiyi yazıyoruz.

Daha sonra kullanıcı adını ve grup adını değiştirmek için,

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -chown train:hadoop /user/train/play-hdfs-commands/ornek01.txt

Sonrasında dosyanın sahipliğinde yaptığımız değişikliği kontrol etmek için terminale aşağıdaki konutu yazıp enter tuşuna basıyoruz.

hdfs dfs -ls /user/train/play-hdfs-commands/ornek01.txt

hdfs dfs -chown komutuyla dosya veya dizinin sahipliğini değiştirdiğinizde, bu değişiklik yalnızca HDFS üzerindeki dosya veya dizin için geçerli olur ve Linux işletim sistemindeki genel kullanıcı veya grup yapısını etkilemez. Yani, bu komut HDFS'teki dosya izinlerini değiştirir, fakat makinenizin genel kullanıcı ve grup yapılandırmasına zarar vermez.

Dosya sahipliğinde yaptığımız değişikliği geri almak eski haline getirmek için aşağıdaki komutu terminale yazıp enter tuşuna basıyoruz.

hdfs dfs -chown root:root /user/train/play-hdfs-commands/ornek01.txt

3.6. chmod: İzinleri Değiştirme

Bu komut, HDFS üzerindeki bir dosya veya dizinin erişim izinlerini değiştirir. 755 izin değeri şu anlama gelir:

  • 7: Sahip (owner) için okuma, yazma ve çalıştırma izinleri (rwx).
  • 5: Grup (group) için okuma ve çalıştırma izinleri (r-x).
  • 5: Diğerleri (others) için okuma ve çalıştırma izinleri (r-x).

Bu komut, dosyanın sahip olduğu izinleri güncelleyerek erişim kontrolünü sağlar.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -chmod 755 /user/train/play-hdfs-commands/ornek01.txt

Yaptığımız izin değişikliklerinin başarılı olup olmadığını kontrol etmek için terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -ls /user/train/play-hdfs-commands/ornek01.txt

Resimde de görüldüğü üzere komut başarıyla çalışmış ve ornek01.txt dosyanın izinleri değişmiştir. Şu an ornek01.txt dosyasının izinleri rwxr-xr-x olarak güncellenmiştir.

  • rwx: Dosya sahibi (root) için okuma, yazma ve çalıştırma izni.
  • r-x: Grup (root) için okuma ve çalıştırma izni.
  • r-x: Diğer kullanıcılar için okuma ve çalıştırma izni.

Bu, chmod 755 komutunun doğru şekilde uygulandığını gösteriyor.

3.7. get: Dosya İndirme

HDFS’teki bir dosyayı yerel dosya sistemine indirmek için kullanılır. Bunun nasıl çalıştığını görmek için terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

docker exec -it cluster-master hdfs dfs -get /user/train/play-hdfs-commands/ornek01.txt /root/

  • docker exec -it cluster-master: Bu kısım, Docker konteyneri içinde bir komut çalıştırmamızı sağlar. Burada, “cluster-master” isimli bir konteyner içine bağlanıp, komutları konteynerin içinde çalıştırıyoruz. -it bayrağı, interaktif bir terminal oturumu açmak için kullanılır.
  • hdfs dfs -get: Hadoop Distributed File System (HDFS) üzerindeki bir dosyayı yerel dosya sistemine indirmek için kullanılan komuttur. Bu örnekte, HDFS’teki bir dosya yerel sisteme indirilmektedir.
  • /user/train/play-hdfs-commands/ornek01.txt: HDFS üzerinde yer alan dosyanın tam yoludur. Bu dosya, HDFS’ten alınmak isteniyor.
  • /root/: Bu, indirilen dosyanın yerel dosya sisteminde kaydedileceği yerdir. Bu komutta, ornek01.txt dosyası Docker konteynerinin içinde /root/ dizinine indirilecektir.

İndirme işleminin başarılı olup olmadığını kontrol etmek için aşağıdaki komutu terminale girip enter tuşuna basıyoruz.

docker exec -it cluster-master ls /root/

Resimde de görüldüğü üzere başarılı bir şekilde ornek01.txt dosyasını indirmeyi başardık.

3.8. du: Dizin Boyutunu Görüntüleme

HDFS’teki bir dizinin ne kadar disk alanı kullandığını görüntülemek için kullanılır.

Aşağıdaki komutu terminale yazıp enter tuşuna basıyoruz.

hdfs dfs -du /user/train/play-hdfs-commands/

Bu komut, /user/train/play-hdfs-commands/ dizinindeki dosyaların ve dizinlerin kullandığı disk alanını gösterir. Resimde de görüldüğü üzere dizin içerisinde bulunan ornek01.txt dosyası 0 bayt boyutunda. Yani, bu dosya herhangi bir veri içermiyor.

3.9. rm: Dosya ve Dizin Silme

HDFS’teki dosya veya dizini silmek için kullanılır. -r seçeneği ile dizinleri recursive olarak siler.

Önce ornek01.txt dosyasını başka bir dizine ornek01-backup.txt isminde yedeğini alıyoruz. Amacımız ornek01.txt dosyasını sildiğimizde sonraki konutlarda ihtiyaç duyarsak bunu kullanabilelim diye bunu yapıyoruz.

hdfs dfs -cp /user/train/play-hdfs-commands/ornek01.txt /user/train/play-hdfs-commands/ornek02.txt

Daha sonra orijinal olan ornek01.txt dosyasını silmek için terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -rm /user/train/play-hdfs-commands/ornek01.txt

Dosyanın silindiğini kontrol etmek için terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -ls /user/train/play-hdfs-commands/

Resimde de görülüğü üzere başarılı bir şekilde dosyamız silinmiş ve öncesinde kopyasını aldığımız dosyamız mevcut durumda.

3.10. Dosya İçeriğini Okuma

Bu komut, HDFS’teki bir dosyanın içeriğini terminalde görüntülemek için kullanılır.

Açıklama: Dosyanın tamamını terminalde göstermek için cat komutunu kullanıyoruz.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -cat /user/train/play-hdfs-commands/ornek02.txt

Resimde de görülüğü üzere ornek02.txt dosyasının içeriği boş olduğu için terminalde bir şey görünmedi. Ama komut hatasızbir şekilde çalıştı.

3.11. fsck: HDFS Sağlık Kontrolü

HDFS dosya sisteminin sağlığını kontrol eder ve bozuk dosyaları ya da eksik blokları raporlar. Nasıl çalıştığını görmek için terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs fsck /

Resimde de görüldüğü üzere HDFS dosya sisteminizin sağlık durumu HEALTHY olarak görünüyor. Yani, şu anda HDFS üzerinde herhangi bir problem ya da eksik blok yok.

3.12. appendToFile: Dosyaya Veri Ekleme

HDFS’teki mevcut bir dosyanın sonuna veri eklemek için kullanılır.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -appendToFile /localfile.txt /user/train/play-hdfs-commands/ornek02.txt

Dosyanın başarıyla eklenip eklenmediğini kontrol etmek için

hdfs dfs -cat /user/train/play-hdfs-commands/ornek02.txt

Resimde de görüldüğü üzere yerel dosya sistemindeki localfile.txt dosyasındaki verileri HDFS'teki ornek02.txt dosyasının sonuna ekledik. ornek02.txt dosyasının içi boştu ama bu işlem sonrasında içerisine “Bu bir test dosyasıdır” metninin eklemiş olduk.

3.13. test: Dosya Varlık Kontrolü

HDFS’te bir dosyanın var olup olmadığını test etmek için hdfs dfs -test komutunu kullanabiliriz. Nasıl çalıştığını görelim.

Terminale aşağıdaki komutları yazıp enter tuşuna basıyoruz.

  • echo $? Komutu:
  • Bu komut, bir önceki komutun çalıştırılmasının sonucunu verir.
  • Sonuç olarak 0 dönerse, önceki komutun başarılı olduğunu, 1 dönerse başarısız olduğunu gösterir.
  • hdfs dfs -test -e /user/train/play-hdfs-commands/ornek02.txt:
  • Bu komut, HDFS’teki /user/train/play-hdfs-commands/ornek02.txt dosyasının var olup olmadığını test eder.
  • İlk echo $? sonucunda 0 görülüyor, bu da dosyanın mevcut olduğunu doğrular.
  • hdfs dfs -test -e /user/train/play-hdfs-commands/ornek03.txt:
  • Bu komut, aynı dizindeki ornek03.txt dosyasını kontrol eder.
  • İkinci echo $? sonucunda 1 görüyoruz, bu da dosyanın mevcut olmadığını gösterir.

echo $? Sonucu:

  • 0: ornek02.txt dosyasının var olduğunu ve test komutunun başarılı olduğunu gösterir.
  • 1: ornek03.txt dosyasının olmadığını ve test komutunun bu dosya için başarısız olduğunu gösterir.

3.14. dfsadmin -report: HDFS Raporu

HDFS kümesinin genel durumunu gösterir. Veri düğümleri (DataNodes), kullanılabilir kapasite, kullanılan kapasite ve blok bilgilerini verir.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfsadmin -report

Resimden de göerüleceği üzere HDFS raporunu başarılı bir şekilde görüntüledik. Canlı veri düğümleri (datanodes) hakkında bilgi veriyor ve her bir düğümün kapasitesi, kullanılan disk alanı, blok sayısı gibi detaylar listeleniyor.

3.15. count: Dosya ve Dizin Sayısı

Bu komut, belirtilen dizindeki toplam dosya ve dizin sayısını görüntüler. Ayrıca, dosyaların toplam boyutunu da gösterir.

Terminale aşağıdaki komutu yazıp enter tuşuna basıyoruz.

hdfs dfs -count /user/train/play-hdfs-commands/

Resimde de görüleceği üzere dosya ve dizin sayılarını ayrıca dosyaların toplam boyutunu net bir şekilde görebilmekteyiz.

3.16. HDFS Balancer: Dengeleme İşlemi

Hadoop Distributed File System (HDFS) üzerindeki veri düğümleri arasında mevcut veri bloklarını dengeler. Blokların belirli düğümlerde yoğunlaşması yerine, tüm düğümlere eşit bir şekilde dağıtılmasını sağlar.

Terminale aşağıdaki komutu yazarak HDFS’te veri düğümleri arasındaki veri bloklarının dengelenmesini başlatabiliriz.

hdfs balancer

Resimde de görüldüğü üzere HDFS üzerindeki blokların halihazırda dengede olduğunu ve herhangi bir veri taşıma işlemi gerekmediğini görülmektedir.

HDFS komutları, Hadoop ekosisteminde verilerin nasıl yönetildiğine dair temel bir anlayış sunar. Dosya ve dizin yönetimi, veri erişim hakları ve depolama yönetimi gibi işlemler, bu komutlarla kolayca gerçekleştirilebilir. Bu rehberde incelediğimiz komutlar, HDFS üzerinde en sık karşılaşılan işlemleri yönetmek için kullanılmaktadır. Bu komutları kullanarak veri kümelerini daha etkin bir şekilde yönetebilir, büyük veri projelerinizde daha verimli sonuçlar elde edebilirsiniz.

4. YARN Komutları: Uygulama İzleme ve Yönetimi

YARN, kaynak yönetimi ve uygulama izleme süreçlerini kolaylaştırmak için birçok komut sunar. Bu bölümde, YARN üzerinde uygulamaları izlerken ve yönetirken sıkça kullanılan komutları ele alacağız.

4.1. yarn application -list: Uygulamaları Listeleme

yarn application -list

Açıklama: YARN üzerinde çalışan tüm uygulamaları listeler. Bu komut, YARN cluster’ında aktif veya geçmişte çalışmış uygulamaların durumunu görmek için kullanılır.

4.2. yarn application -status: Uygulama Durumunu Görüntüleme

yarn application -status <application_id>

Açıklama: Belirli bir uygulamanın durumunu kontrol etmek için kullanılır. Uygulamanın ilerleme durumu, başlangıç zamanı ve kullanılan kaynaklar gibi bilgileri verir.

4.3. yarn application -kill: Uygulama Sonlandırma

yarn application -kill <application_id>

Açıklama: Belirtilen YARN uygulamasını sonlandırmak için kullanılır. Örneğin, uzun süredir çalışan veya istenmeyen bir uygulamayı durdurmak için kullanılır.

4.4. yarn logs -applicationId: Uygulama Loglarını Görüntüleme

yarn logs -applicationId <application_id>

Açıklama: Belirli bir YARN uygulamasının loglarını getirir. Bu komut, bir uygulamanın çalışırken ürettiği logları incelemek için kullanılır.

4.5. yarn node -list: Tüm Nodları Listeleme

yarn node -list

Açıklama: YARN cluster’ındaki tüm nodları (düğümleri) listeler. Bu komut, hangi nodların aktif olduğunu ve kaynak durumlarını görmek için kullanılır.

4.6. yarn node -status: Nod Durumunu Görüntüleme

yarn node -status <node_id>

Açıklama: YARN cluster’ında belirtilen bir nodun durumunu gösterir. Nodun mevcut kaynak kullanımı, çalışma durumu ve diğer ayrıntılar görüntülenir.

4.7. yarn container -list: Uygulama Konteynerlerini Listeleme

yarn container -list <application_id>

Açıklama: Belirtilen bir uygulamanın YARN üzerinde çalıştırdığı konteynerleri listeler. Konteynerlerin durumları ve hangi nodda çalıştıkları gibi bilgileri sağlar.

4.8. yarn top: YARN Cluster’da Kaynak İzleme

yarn top

Açıklama: YARN cluster’ında çalışan uygulamaların canlı kaynak kullanımını gösterir. Bu komut, YARN üzerinde çalışan uygulamaların CPU ve bellek kullanımlarını izlemek için kullanılır.

4.9. yarn node -details: Nod Detayları

yarn node -details <node_id>

Açıklama: YARN cluster’ında belirli bir nodun detaylı durum bilgilerini verir. Bu komut, nodun kaynak kullanımını ve çalıştırdığı uygulamaları izlemek için kullanılır.

4.10. yarn rmadmin -refreshNodes: YARN Nodlarını Yenileme

yarn rmadmin -refreshNodes

Açıklama: YARN ResourceManager üzerindeki nod bilgilerini yeniler. Bu komut, yeni eklenen veya çıkarılan nodları ResourceManager’a bildirmek için kullanılır.

4.11. yarn logs -applicationId > file.log: Uygulama Loglarını Dosyaya Kaydetme

yarn logs -applicationId <application_id> > application_logs.txt

Açıklama: Belirtilen bir YARN uygulamasının loglarını bir dosyaya kaydeder. Bu, büyük uygulamalarda logları analiz etmek için faydalıdır.

4.12. yarn applicationattempt -list: Uygulama Denemelerini Listeleme

yarn applicationattempt -list <application_id>

Açıklama: YARN üzerinde belirli bir uygulamanın deneme sayısını ve bunların durumlarını listeler. Bu komut, uygulamanın başarısız olup yeniden başlatıldığı durumları görmek için kullanılır.

YARN komutları, Hadoop cluster’ındaki uygulamaların izlenmesi ve yönetilmesi için gerekli araçları sunar. Uygulamaların durumlarını kontrol etmek, logları izlemek ve kaynak kullanımını yönetmek, YARN’in sunduğu güçlü komutlarla mümkün hale gelir. Bu bölümde incelediğimiz komutlar, YARN üzerinde çalışan uygulamaların verimli bir şekilde izlenmesi ve kontrol edilmesi için temel oluşturur. YARN komutlarıyla, kaynak yönetimini optimize ederek, büyük veri projelerinizin performansını artırabilirsiniz.

Bir sonraki yazımda görüşmek üzere.

Her türlü iş birliği için, LinkedIn üzerinden bağlantı kurmak isterseniz buradan profilime ulaşabilirsiniz 😊

--

--