HADOOP FILE SYSTEM (HDFS)

Standard

HDFS, NTFS gibi datayı bloklara ayırarak depolar. NTFS gibi son derece oturmuş bir dosya sistemi yerine HDFS kullanılmasını amacı Hadoop uygulamalarının erişilebilirliği yüksek dağıtık dosya sistemine ihtiyacı vardır. NTFS bu açıdan bakıldığında yetersiz kalmaktadır.

NTFS LimitleriHDFS Limitleri
Eğer harddisk alanı dolduysa n’olur ? Hiç bir dosya depolanamaz.HDFS çeşitli clusterlarda veriyi tuttuğu için kolaylıkla bu alan arttırılabilir.
Eğer ana bilgisayar(server) veya harddisk hataya düşerse n’olur ?HDFS güvenilirdir. Bir hata oluşsa dahi diğer datanodelardan replikalarıyla değiştirilebilir.
NTFS & EXT3 dosya sistemleri genellikle 4 veya 8 KB bloklar halinde verileri tutarlar. Böylelikle birden fazla okunma yapılması gerekir.HDFS’in varsayılan blok büyüklüğü 64MB. böylelikle daha az dosya tutulur ve tutulması gereken metadata bilgiside bu sayede azalır. Ayrıca HDFS harddiskten okuma yapmak üzerine optimize edilmiştir.
NFS yönetimi genelde komut satırı veya genel sistem yönetimi araçlarıyla yapılır.HDFS bize performans durmunu ve dosyaları görüntülememiz için web sunucusu sunar.( Varsayılan portu 50070 tir.)

Ntfs ve hdfs karşılaştırması [1]

HDFS her dosyanın 3 kopyası(replication) tutulmaktadır. Bu sayede bir datanode ölse bile diğer datanodelerından veri kurtarılabilmektedir. İstendiği takdirde bu değer değiştirilebilmektedir. Bunun için hadoop’un klasöründe ki aşağıdaki dosya düzenlenmelidir.

hdfs-site.xml 

<property> 
<name>dfs.replication<name> 
<value>3<value> 
<description>Block Replication<description> 
<property>

Ya da bunun alternatifi olarak her dosyanın replikası sayısı tek tekte belirlenebilir. Bunun için aşağıdaki komut kullanılabilir. Buna bir ek daha aşağıdaki ikinci komut -R (özyinelemeli)recursive olarak tüm dosyalar için çalışacaktır.

hadoop fs –setrep –w 3 /hduser/somefile.txt
hadoop fs –setrep –w 3 -R /hduser/

HDFS’in birincil önceliği datanın güvenirliğini sağlamaktır. HDFS’te hata 3 tür durumda görülebilir:

  1. NameNode failure
  2. DataNode failure
  3. Network partitions failure

Her DataNode NameNode düzenli olarak heartbeat(kalp atışı) yollar. Network bölümlenmesi DataNodeların bağlantısını kaybetmesine sebep olabilir. Bu durumda NameNode heartbeat in ulaşmadığını tespit eder. Namenode bu heartbeat gelmeye node’u ölü olarak işaretler. Bu durumda yeni GÇ isteği yollamaz.Artık bu node HDFS erişilebilir değildir. Bu ölü data node belirlenen bazı bloklarının kopyalanmasına(çoğaltılmasına) yol açabilir. Böylelikle daima verinin güvenirliliği sağlamaktadır. [2]


Faydalı fs shell komutları:

hduser altında folder isimli dosya oluştur.

bin/Hadoop dfs -mkdir /hduser/folder

hduser altında folder isimli dosyayı siler.R parametresi, recursive olarak uygular yani tüm alt dosyalarıda siler.

bin/Hadoop fs -rm -R /hduser/folder

hduser altında folder isimli dosyanın içeriğini görüntüler

bin/Hadoop dfs -cat /hduser/folder

Bazı hdfs komutları


Referanslar
[1] http://news.sys-con.com/node/2665115
[2] http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html

Leave a Reply

Your email address will not be published. Required fields are marked *