Video: Hadoop Pig Script Dili (Hadoop Eğitim Serisi 8) 2024
HDFS, Hadoop çerçevesinin iki temel bileşeninden biridir; diğeri MapReduce olarak bilinen hesaplama paradigmasıdır. Dağıtılmış Dosya Sistemi , ağa bağlı bir makine kümesinde depolama alanını yöneten bir dosya sistemidir.
HDFS, verileri varsayılan boyut 64MB olan blok 'da depolar. HDFS'de saklamak istediğiniz dosyalar, daha sonra küme boyunca bağımsız olarak depolanan blok boyutunda parçalara bölünmelidir. HDFS'de her dosyayı oluşturan blokları listelemek için fsck line komutunu aşağıdaki gibi kullanabilirsiniz:
% hadoop fsck / -files -blocks
Hadoop Java ile yazıldığından, HDFS ile olan tüm etkileşimler Java API ile yönetilir. Yine de, HDFS'deki dosyalarla çalışmak için bir Java uzmanı olmanız gerekmediğini unutmayın. Java API'nın üstünde yer alan birkaç Hadoop arabirimi şimdi yaygın olarak kullanılmaktadır (ve Java'yı gizlemektedir), ancak en basit olanı komut satırı arayüzüdür; verilen örneklerde HDFS ile etkileşim kurmak için komut satırını kullanın.
Hadoop dosya sistemi kabuğuna, hadoop komutunun bir formunu çalıştırarak erişirsiniz. Tüm hadoop komutları bin / hadoop komut dosyası tarafından çağrılır. (Tüm hadoop komutlarının açıklamalarını almak için hadoop komut dosyasını bağımsız değişken belirtmeden çalıştırın.) Hadoop komutu
sözdizimine sahiptir hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
config confdir seçeneği, varsayılan yapılandırma dizini ($ HADOOP_HOME / conf) üzerine yazar, böylece Hadoop ortam yapılandırmanızı kolaylıkla özelleştirebilirsiniz. Genel seçenekler ve komut seçenekleri, birkaç komut tarafından desteklenen ortak seçenekler grubudur.
Hadoop dosya sistemi kabuk komutları (komut satırı arabirimleri için) bağımsız değişken kaynak tanımlayıcılarını (URI'ler) argüman olarak alır. URI , bir ad veya web kaynağı tanımlamak için kullanılan bir karakter dizesidir.
Dizge, veri kaynağının niteliği için bir niteleyici olan bir şema adı - içerebilir. HDFS için şema adı hdfs'dir ve yerel dosya sistemi için şema adı dosyadır. Bir şema adı belirtmezseniz, varsayılan yapılandırma dosyasında belirtilen şema adıdır. HDFS'deki bir dosya veya dizin, bu örnekte olduğu gibi tamamen nitelenmiş bir şekilde belirtilebilir:
hdfs: // namenodehost / parent / child
Veya konfigürasyon dosyası işaret ederse basitçe / parent / child olabilir hdfs: // namenodehost'a.
Linux dosya komutlarına benzer Hadoop dosya sistemi kabuğu komutları şu genel sözdizimine sahiptir:
hadoop hdfs dfs - file_cmd
Bazı önceki Hadoop deneyimine sahip okuyucular "Ama ne hadoop fs komutuyla ilgili?"Fs komutu, Hadoop 0. 2 sürümünde kullanımdan kaldırılmış ancak Hadoop 2'de hala çalışıyor. Bunun yerine hdfs dfs kullanın.
Beklediğiniz gibi, tıpkı Linux veya Unix tabanlı işletim sistemlerinde yaptığınız gibi HDFS'de bir dizin oluşturmak için mkdir komutunu kullanın. HDFS'nin varsayılan bir çalışma dizini / user / $ USER olduğu halde, $ USER , oturum açma kullanıcı adınızdır, kendiniz de
$ hadoop hdfs dfs -mkdir / user / login_user_name
Örneğin, "joanna" adlı bir dizin oluşturmak için bu mkdir komutunu çalıştırın:
$ hadoop hdfs dfs -mkdir / user / joanna
Hadoop put komutunu kullanarak bir dosyayı yerel dosya sisteminizi HDFS'ye kopyalayın:
$ hadoop hdfs dfs -put dosya_adı / user / login_user_name
Örneğin, data adlı bir dosyayı kopyalamak için. txt dosyasını bu yeni dizine kopyalayın, aşağıdaki put komutunu çalıştırın:
$ hadoop hdfs dfs -put data. txt / user / joanna
Bir HDFS dosya listesi almak için ls komutunu çalıştırın:
$ hadoop hdfs dfs -ls. Bulunan 2 öğe drwxr-xr-x - joanna supergroup 0 2013-06-30 12: 25 / kullanıcı / joanna-rw-r - r-- 1 joanna supergroup 118 2013-06-30 12: 15 / kullanıcı / joanna / veri. txt
Dosya listesinin kendisi bu listede açıklandığı gibi parçalanır:
-
Sütun 1 dosya modunu gösterir (dizin için "d" ve normal dosya için "-" ve ardından izinler gelir). Üç izin türü - okuma (r), yazma (w) ve yürütme (x) - Linux ve Unix tabanlı sistemlerdeki gibi aynıdır. HDFS'de bir dosyayı yürütemediğinizden, bir dosyanın yürütme izni yok sayılır. İzinler, sahibi, grup ve halka (diğerleri) göre gruplandırılır.
-
Sütun 2 dosyalar için çoğaltma faktörünü gösterir. (Çoğaltma kavramları dizinler için geçerli değildir.) HDFS'de bir dosyayı oluşturan bloklar hata toleransını sağlamak için çoğaltılmaktadır. çoğaltma çarpanı, veya belirli bir dosya için saklanan çoğaltma sayısı yapılandırılabilir. Dosya oluşturulduğunda veya daha sonra uygulamanız aracılığıyla çoğaltma faktörünü belirtebilirsiniz.
-
Sütun 3 ve 4, sahibi ve grup dosyalarını gösterir. Süper grup süper kullanıcı grubunun adıdır ve süper kullanıcısı , NameNode işlemi ile aynı kimliği olan kullanıcıdır. NameNode'u başlatırsanız, şimdilik süper kullanıcısınız. Bu özel bir grup - normal kullanıcılar, kullanıcı kimliğini özel özellik taşımayan bir gruba ait olacak - sadece bir Hadoop yöneticisi tarafından tanımlanan bir grup.
-
Sütun 5, dosyanın boyutunu bayt olarak gösterir veya bir dizinse 0'dır.
-
Sütun 6 ve 7 sırasıyla son değişiklik tarihini ve saatini gösterir.
-
Sütun 8 dosya veya dizinin nitelenmemiş adını (şema adı belirtilmemiş demektir) gösterir.
Bir dosyayı HDFS'den yerel dosya sisteminize kopyalamak için Hadoop get komutunu kullanın:
$ hadoop hdfs dfs -get dosya_adı / user / login_user_name
Hadoop rm'yi kullanın komutu, bir dosyayı veya boş bir dizini silmek için:
$ hadoop hdfs dfs -rm dosya_adı / user / login_user_name
hadoop hdfs dfs -help komutunu kullanarak her biri için ayrıntılı yardım alın seçeneği.