Özel Bir makalede (iki) HDFS'de (aşağıda) Hadoop'u anlama

5.1 Kullanıcı komutu

Hadoop küme kullanıcıları için ortak komutlar.

5.1.1 sınıf yolu

Hadoop kavanozunu ve gerekli kitaplıkları elde etmek için gereken sınıf yolunu yazdırın. Parametre olmadan çağrılırsa, komut dosyası tarafından ayarlanan sınıf yolu yazdırılır ve sınıf yolu girişine joker karakterler dahil edilebilir. Diğer seçenekler, sınıf yolunu yazdırır veya sınıf yolunu joker karakter genişletmeden sonra jar dosyaları listesine yazar. İkincisi, joker karakterlerin kullanılamadığı ve genişletilmiş sınıf yolunun desteklenen maksimum komut satırı uzunluğunu aştığı ortamlarda çok kullanışlıdır.

5.1.2 dfs

HDFS, kullanıcı verilerinin dosyalar ve dizinler şeklinde düzenlenmesine izin verir. Kullanıcıların HDFS'deki verilerle etkileşim kurmasına olanak tanıyan FS kabuğu adı verilen bir komut satırı arabirimi sağlar. Bu komut setinin sözdizimi zaten aşina olduğumuz kabuğa benzer.

FS kabuğu, depolanan verilerle etkileşim kurmak için bir komut dosyası dili gerektiren uygulamalar içindir. Belirli komutlar, uygulamalı öğretim oturumunda ayrıntılı olarak açıklanacaktır.

5.1.3 envvars

Hesaplanan Hadoop ortam değişkenlerini görüntüleyin.

5.1.4 getirme

HDFS, yetkilendirme kimliğini almak ve yerel dosya sistemindeki bir dosyada saklamak için fetchdt komutunu destekler. "Güvenli olmayan" bir istemci, kısıtlı sunuculara (NameNode gibi) erişmek için bu tanımlayıcıyı kullanabilir. Bu tanımlayıcıyı elde etmek için, RPC veya HTTPS (Kerberos üzerinden) kullanın ve ardından Kerberos kimlik bilgilerini almadan önce (kimlik bilgilerini almak için kinit çalıştırın). HDFS fechedt komutu bir Hadoop kabuğu komutu değildir. Bin / hadoop fetchdt DTfile olarak çalışır. Yetkilendirme kimliğini aldıktan sonra, yetkilendirme kimliği dosya adı olarak HADOOP_TOKEN_FILE_LOCATION ortam değişkenini belirterek, HDFS komutlarını Kerberros kimlik bilgileri olmadan çalıştırabilirsiniz.

5.1.5 fsck

HDFS, sistemdeki çeşitli tutarsızlıkları kontrol etmek için fsck komutunu destekler. Bu komut, eksik veri blokları veya yetersiz kopya sayısı gibi çeşitli dosyalarla ilgili sorunları bildirmek için tasarlanmıştır. Yerel dosya sistemindeki geleneksel fsck aracının aksine, bu komut algıladığı hataları düzeltmez. Genel olarak, NameNode, kurtarılabilir hataların çoğunu otomatik olarak düzeltir. HDFS'nin fsck'i bir Hadoop kabuk komutu değildir. 'Bin / hadoop fsck 'aracılığıyla yürütülür.

5.1.6 getconf

Yapılandırma dizininden yapılandırma bilgilerini alın.

5.1.7 grupları

Verilen bir veya daha fazla kullanıcı adı için grup bilgilerini döndürür.

5.1.8 lsSnapshottableDir

Anlık görüntü dizinlerinin bir listesini alın. Süper kullanıcı olarak çalıştığında, anlık görüntülenebilir tüm dizinleri döndürür. Aksi takdirde, mevcut kullanıcıya ait olan dizinleri döndürür.

5.1.9 jmxget

Hizmetten JMX bilgilerini boşaltın.

5.1.10 oev

Hadoop çevrimdışı düzenleyici görüntüleyicidir.

5.1.11 oiv

Hadoop çevrimdışı resim görüntüleyici, Hadoop 2.4 veya sonraki sürümlerdeki resim dosyaları için kullanılır.

5.1.12 oiv_legacy

Hadoop'un eski sürümleri için Hadoop çevrimdışı resim görüntüleyici.

5.1.13 anlık görüntü

HDFS anlık görüntüleri arasındaki farkı belirleyin.

5.1.14 sürümü

Baskı versiyonu.

5.2 Yönetim komutları

Hadoop küme yöneticileri tarafından yaygın olarak kullanılan komutlar.

5.2.1 dengeleyici

Küme dengesi aracını çalıştırın. Yönetici, dengeleme işlemini durdurmak için Ctrl-C tuşlarına basabilir.

5.2.2 önbellek

HDFS önbellek yönetimi.

5.2.3 kripto

HDFS şeffaf şifreleme.

5.2.4 veri düğümü

HDFS veri modunu çalıştırın.

5.2.5 dfsadmin

DFSAdmin komut kümesi, HDFS kümelerini yönetmek için kullanılır. Bunlar yalnızca HDFS yöneticileri tarafından kullanılan komutlardır. İşte bazı örnek / komut çiftleri:

5.2.6 disk dengeleyici

Disk zamanlayıcı CLI'yi çalıştırın.

5.2.7 silme kodu

ErasureCoding CLI'yi çalıştırın.

5.2.8 haadmin

NFS'li HDFS HA'da veya QJM'li HDFS HA'da kullanılır.

5.2.9 günlük modu

Bu komut, QJM ile HDFS HA için bir journalnode başlatır.

5.2.10 taşıyıcı

Veri taşıma yardımcı programını çalıştırın.

5.2.11 ad modu

Namenode'u çalıştırın. Ve yükseltme ve geri alma.

5.2.12 nfs3

Bu comamnd, HDFS NFS3 hizmeti için NFS3 ağ geçidini başlatır.

5.2.13 bağlantı noktası haritası

Bu comamnd, HDFS NFS3 hizmeti için RPC bağlantı noktası haritasını başlatır.

5.2.14 ikincil isim kodu

HDFS ikincil düğümünü çalıştırın.

5.2.15 depolama politikaları

Tüm / get / set / unset depolama politikalarını listeleyin.

5.2.16 zkfc

Bu komut, QJM ile HDFS HA ile kullanım için bir Zookeeper yük devretme denetleyicisi sürecini başlatır.

5.3 Hata ayıklama komutları

Yöneticilerin HDFS sorunlarını gidermesine etkili bir şekilde yardımcı olun. Bu komutlar yalnızca ileri düzey kullanıcılar içindir.

5.3.1verifyMeta

HDFS meta verilerini doğrulayın ve dosyaları engelleyin. Bir blok dosyası belirtilirse, meta veri dosyasındaki sağlama toplamının blok dosyasıyla eşleştiğini doğrularız.

5.3.2 computeMeta

Blok dosyalarından HDFS meta verilerini hesaplayın. Bir blok dosyası belirtilirse, sağlama toplamını blok dosyasından hesaplayacağız ve belirtilen çıktı meta veri dosyasına kaydedeceğiz.

Not : Kullanılması risklidir Blok dosyası hasar görürse ve meta dosyası üzerine yazılırsa, HDFS'de "normal" olarak görüntülenecek, ancak veriler okunamayacaktır. Bunu yalnızca blok dosyasının normal olduğundan% 100 emin olduğunuzda kullanabilirsiniz.

5.3.3 RecoveryLease

Kira sözleşmesini belirtilen yola geri yükleyin. Yol, HDFS dosya sisteminde bulunmalıdır. Varsayılan yeniden deneme sayısı 1'dir.

6. Daha fazla okuma

6.1 Dosya depolama, SSD ve bellek

Arşiv depolama, artan depolama kapasitesini bilgi işlem gücünden ayıran bir çözümdür. Daha yüksek yoğunluk ve düşük bilgi işlem gücü sağlayan daha düşük maliyetli depolamaya sahip düğümler kullanılabilir hale gelir ve kümede soğuk depolama olarak kullanılabilir. Stratejiye bağlı olarak, sıcaktan gelen veriler soğuğa taşınabilir. Soğuk depolamaya daha fazla düğüm eklemek, kümedeki bilgi işlem gücünden bağımsız olarak depolamayı artırabilir.

Heterojen depolama ve arşiv depolaması tarafından sağlanan çerçeve, HDFS mimarisini SSD'ler ve depolama dahil olmak üzere diğer depolama ortamı türlerini içerecek şekilde özetler. Kullanıcılar, daha iyi performans için verilerini SSD veya bellekte depolamayı seçebilirler.

6.1.1 Depolama Tipi

Heterojen depolamanın ilk aşaması, datanode depolama modelini tek bir depolamadan (birden çok fiziksel depolama ortamına karşılık gelebilir), her depolamanın fiziksel bir depolama ortamına karşılık geldiği bir depolama koleksiyonuna değiştirir. Ayrıca, DISK'in varsayılan depolama türü olduğu depolama türü, DISK ve SSD kavramını da ekler.

Yüksek depolama yoğunluğuna (PB düzeyinde depolama) sahip, ancak arşiv depolamayı desteklemek için çok düşük hesaplama gücüne sahip olan yeni bir depolama türü ARŞİV eklendi.

Hafızaya tek bir kopya dosyası yazmayı desteklemek için başka bir yeni depolama türü RAM_DISK eklenmiştir.

6.1.2 Depolama Stratejisi

Depolama stratejisine göre dosyaların farklı depolama türlerinde depolanmasına izin vermek için yeni bir depolama stratejisi konsepti tanıtıldı.

Aşağıdaki depolama stratejilerine sahibiz:

  • Sıcak : Depolama ve hesaplama için kullanılır. Kullanılan veriler bu politikada kalacaktır. Blok sık kullanıldığında, tüm kopyalar DİSK'te saklanır.

  • Soğuk : Yalnızca sınırlı hesaplamalarla depolamaya uygulanabilir. Artık kullanılmayan veya arşivlenmesi gereken veriler, sıcak depolamadan soğuk depolamaya taşınacaktır. Blok sık kullanılmadığında, tüm kopyalar ARŞİV'de saklanır.

  • Ilık, hafif sıcak : Kısmen sıcak ve kısmen soğuk veri. Bir blok ısındığında, bazı kopyaları DİSK'te, geri kalanı ARŞİV'de saklanır.

  • Tüm_SSD : Tüm kopyaları SSD'de saklamak için kullanılır.

  • One_SSD : SSD'nin bir kopyasını saklamak için kullanılır. Kalan kopyalar DISK'de saklanır.

  • Lazy_Persist : Hafızaya tek bir kopya yazmak için kullanılan blok. Kopya önce RAM_DISK'e yazılır ve sonra DİSK'te saklanır.

6.1.3 Depolama Stratejisi Analizi

Bir dosya veya dizin oluştururken, depolama politikası belirtilmez. Depolama ilkesini belirtmek için "storagepolicies -setStoragePolicy" komutunu kullanabilirsiniz. Dosya veya dizinlerin etkili depolama stratejisi aşağıdaki kurallarla çözülür.

  • Bir dosya veya dizin belirtmek için bir depolama politikası kullanıyorsanız, lütfen geri dönün;

  • Belirtilmemiş dosyalar veya dizinler için, kök dizin ise, lütfen varsayılan depolama ilkesine dönün. Aksi takdirde, üst kuruluşun etkin depolama politikasını iade edin.

Etkili depolama politikası, "storagepolicies -getStoragePolicy" komutuyla alınabilir.

6.1.4 Mover'ın yeni veri taşıma aracı

Verileri arşivlemek için yeni bir veri taşıma aracı eklendi. Araç, Dengeleyiciye benzer. Blok düzeninin depolama stratejisine uygun olup olmadığını kontrol etmek için HDFS'deki dosyaları düzenli olarak tarar. Depolama politikasını ihlal eden bloklar için, depolama politikası gereksinimlerini karşılamak için kopyayı farklı bir depolama türüne taşır.

6.2 Yükseltme ve geri alma

Hadoop'u mevcut bir kümede yükseltirken, diğer yazılım yükseltmelerinde olduğu gibi, yeni hatalar veya mevcut uygulamaları etkileyecek bazı uyumsuz değişiklikler olabilir. Anlamlı bir HDSF sisteminde, HDFS'nin yeniden başlatılması bir yana, veri kaybına izin verilmez. HDFS, yöneticilerin önceki Hadoop sürümüne geri dönmesine ve kümenin durumunu yükseltmeden öncesine geri almasına olanak tanır. HDFS, her seferinde böyle bir yedeklemeye sahip olabilir. Yükseltmeden önce, yöneticinin bin / hadoop dfsadmin -finalizeUpgrade komutuyla var olan yedekleme dosyasını silmesi gerekir. İşte genel yükseltme sürecine kısa bir giriş:

  • Hadoop yazılımını yükseltmeden önce, lütfen bir yedeklemenin mevcut olup olmadığını kontrol edin.Varsa, yedeklemeyi silmek için ilgili işlemleri gerçekleştirebilirsiniz. Dfsadmin -upgradeProgress status komutu aracılığıyla, bu işlemi bir küme üzerinde gerçekleştirmeniz gerekip gerekmediğini öğrenebilirsiniz;

  • Kümeyi durdurun ve Hadoop'un yeni bir sürümünü dağıtın;

  • Yeni sürümü -upgrade seçeneğiyle çalıştırın (bin / start-dfs.sh -upgrade);

  • Çoğu durumda, küme normal şekilde çalışabilir. Yeni HDFS'nin normal şekilde çalıştığını düşündüğümüzde (belki birkaç günlük çalışmadan sonra), mevcut yedekleme dosyalarını silebiliriz;

  • Eski sürüme geri dönmeniz gerekiyorsa.

Kümeyi durdurun ve Hadoop'un eski sürümünü dağıtın.

İsim düğümünde geri alma komutunu çalıştırın (bin / hdfs namenode -rollback).

Kümeyi geri alma seçeneğiyle başlatın (bin / start-dfs.h -rollback).

Yeni bir HDFS sürümüne yükseltirken, yeni HDFS sürümünde ayrılmış tüm yolları yeniden adlandırmak veya silmek gerekir. NameNode, yükseltme sırasında ayrılmış bir yolla karşılaşırsa, aşağıdaki hatayı yazdırır:

/.reserved, ayrılmış yoldur ve .snapshot, HDFS'nin bu sürümündeki ayrılmış yol bileşenidir. Lütfen geri alın ve bu yolu silin veya yeniden adlandırın veya yükseltme sırasında bu yolları otomatik olarak yeniden adlandırmak için -rename Reserved seçeneğiyle yükseltin.

NameNode'un başlatma sırasında bulunan tüm ayrılmış yolları otomatik olarak yeniden adlandırması için -upgrade -renameReserved değerini belirtin. Örneğin, .snapshot adlı tüm yolları .my-snapshot ve .reserved olarak .my-saklıdır olarak yeniden adlandırmak için, kullanıcı -upgrade --rename Reserved .snapshot = .my-snapshot, .reserved = belirtir. rezerve ettiğim.

Anahtar-değer çiftlerini belirtmek için -renameReserved kullanmazsanız, NameNode kullanılır < DÜZENLEME VERSİYONU > .UPGRADE_RENAMED.

Bu yeniden adlandırma işlemiyle ilgili bazı uyarılar var. Mümkünse, yükseltmeden önce hdfs dfsadmin -saveNamespace'den alıntı yapmanız önerilir. Bunun nedeni, günlüğü düzenleme işleminin otomatik olarak yeniden adlandırılan dosyaların hedefine başvurması durumunda veri tutarsızlığına neden olabilmesidir.

6.3 HDFS sıralı yükseltme

HDFS sıralı yükseltme, tek bir HDFS arka plan programının yükseltilmesine izin verir. Örneğin, veri düğümleri, veri düğümlerinden bağımsız olarak yükseltilebilir. Bir ad kodu, diğer ad kodlarından bağımsız olarak yükseltilebilir. Ad anahtarı, veri düğümü ve günlük düğümünden bağımsız olarak yükseltilebilir.

6.3.1 Yükseltme

Hadoop v2'de HDFS, yüksek kullanılabilirlik (HA) ad kodu hizmetini ve hat uyumluluğunu destekler. Bu iki işlev, HDFS kapalı kalma süresine neden olmadan HDFS'yi yükseltmeyi mümkün kılar. HDFS kümesini kesinti olmadan yükseltmek için kümenin HA ile ayarlanması gerekir.

Yeni yazılım sürümünde herhangi bir yeni özellik etkinleştirilirse, eski yazılım sürümü yükseltmeden sonra kullanılamayabilir. Bu durumda, yükseltme aşağıdaki adımlarla tamamlanmalıdır:

  • Yeni özellikleri devre dışı bırakın;

  • Kümeyi yükseltin;

  • Yeni özellikleri etkinleştirin.

Lütfen sıralı yükseltmelerin yalnızca Hadoop-2.4.0 ve sonraki sürümler tarafından desteklendiğini unutmayın.

6.3.1.1 Kesinti olmadan yükseltme

Bir HA kümesinde, iki veya daha fazla NameNode (NN), birçok DataNode (DN), bazı JournalNode'lar (JN) ve bazı ZooKeeperNodes (ZKN) vardır. JN'ler nispeten kararlıdır ve çoğu durumda HDFS'yi yükseltmek gerekli değildir. Kesinti olmadan yükseltme, JN ve ZKN'yi değil, yalnızca NN ve DN'yi dikkate alır. JN ve ZKN'nin yükseltilmesi küme arıza süresine neden olabilir.

6.3.1.2 Kapalı kalma süresiyle yükseltme

HA olmayan kümeler için HDFS, ad modunun yeniden başlatılması gerektiğinden kesinti olmadan yükseltilemez. Bununla birlikte, datanodlar yine de sürekli bir şekilde yükseltilebilir.

6.3.2 Eski sürüme geçme ve geri alma

Yükseltilmiş sürüm hoş karşılanmadığında veya bazı durumlarda yükseltme başarısız olduğunda (daha yeni sürümdeki hatalar nedeniyle), yönetici HDFS'yi yükseltme öncesi sürüme düşürmeyi veya HDFS'yi yükseltme öncesi sürüme geri döndürmeyi ve yükseltmeyi seçebilir Önceki durum.

6.3.2.1 Düşürme

Düşürme, yazılımı yükseltme öncesi sürüme geri yükler ve kullanıcı verilerini saklar. T zamanının, sıralı yükseltmenin başlangıç zamanı olduğunu ve yükseltmenin bir düşürme ile sonlandırıldığını varsayın. Ardından, T'den önce veya sonra oluşturulan dosyalar HDFS'de hala kullanılabilir. T'den önce veya sonra silinen dosyalar HDFS'de silinmiş olarak kalır.

Bu iki sürüm arasında yalnızca ad kodu düzeni sürümü ve veri düğümü düzeni sürümü değiştirilmediğinde, yeni sürüm yükseltme öncesi sürüme indirilebilir.

6.3.2.2 Geri Alma

Geri alma, yazılımı yükseltme öncesi sürüme geri yükler, ancak aynı zamanda kullanıcı verilerini yükseltme öncesi durumuna geri yükler. T zamanının, sıralı yükseltmenin başlangıç zamanı olduğunu ve yükseltmenin geri alma ile sonlandırıldığını varsayın. T'den önce oluşturulan dosyalar HDFS'de kullanılabilir durumda kalır, ancak T'den sonra oluşturulan dosyalar kullanılamaz hale gelir. T'den önce silinen dosyalar HDFS'de silinmiş olarak kalır, ancak T'den sonra silinen dosyalar geri yüklenir.

Daha yeni bir sürümden yükseltme öncesi bir sürüme geri dönüş her zaman desteklenir. Ancak yuvarlanan bir şekilde yapılamaz. Küme kesinti süresi gerektirir.

6.4 HDFS kota kılavuzu

6.4.1 Genel Bakış

HDFS, yöneticilerin kullanılan adlandırma ve her bir klasör için kota belirlemesine olanak tanır. Belirtilen kotalar ve alan kotaları bağımsız olarak çalışır, ancak bu iki durumun yönetimi ve uygulanması yakından bağlantılıdır.

6.4.2 Adlandırma Kotası

Adlandırılmış kota, bu klasördeki dosya ve klasörlerin sayısıdır. Kota aşılırsa, dosya ve klasör oluşturma başarısız olur.Adlandırma kotası, yeniden adlandırma sonrasında da çalışacaktır. Yeniden adlandırma işlemi kota sınırını ihlal ederse, yeniden adlandırma başarısız olur. Yeni oluşturulan dizinde kota sınırı yoktur. Long.Max_Value maksimum sınırı temsil eder. Kota 1 ise, bu klasör boş kalmaya zorlanacaktır. (Bir dizin ayrıca kendi kotasını da kaplar).

Kotalar fsimage olarak kalmaya devam eder Başlangıçtan sonra, fsimage kota sınırını hemen ihlal ederse (fsimage'ın gizli değişikliğinden dolayı), bu bir uyarı yazdıracaktır. Kotaların belirlenmesi veya silinmesi boş bir günlük oluşturacaktır.

6.4.3 Alan Kotası

Alan kotası, bir klasörün boyutunu belirlemektir. Aşarsa, blok yazma başarısız olur. Kopya da kotanın bir parçasıdır. Kota, klasörü yeniden adlandırdıktan sonra çalışmaya devam eder. Kota ihlal edilmişse, yeniden adlandırma işlemi başarısız olur. Yeni oluşturulan klasörün bir kota sınırı olmayacaktır ve Long.Max_Value maksimum kotayı ayarlayabilir. Kotanın 0 olarak ayarlanması dosya oluşturmayı çalıştırmaya devam eder, ancak dosyaya blok yazamaz. Ana bilgisayar dosya sistemini kullanmayan klasörler alan kotasına sayılmaz ve ana dosya sistemi tarafından dosya kaynak verilerini kaydetmek için kullanılan veriler kotaya dahil edilmez.

Kotalar fsimage'da saklanır Başlangıçtan sonra, fsimage kota sınırını hemen ihlal ederse (çünkü fsimage yavaşça değişecektir), bu bir uyarı yazdıracaktır. Kotaların belirlenmesi veya silinmesi boş bir günlük oluşturacaktır.

6.4.4 Depolama Türü Kotası

Depolama türü kotaları, dizin ağacının kökündeki dosyalar için belirli depolama türlerinin (SSD, DİSK, ARŞİV) kullanımına ilişkin kısıtlamalardır. Birçok yönden depolama alanı kotalarına benzer, ancak küme depolama alanı kullanımı üzerinde ayrıntılı kontrol sağlar. Bir dizinde depolama türü kotalarını ayarlamak için, depolama ilkesine göre dosyaların farklı depolama türlerinde depolanmasına izin vermek için dizinde bir depolama ilkesinin yapılandırılması gerekir.

Depolama türü kotaları, küme depolama kullanımını etkin bir şekilde yönetmek için alan kotaları ve ad kotalarıyla birleştirilebilir. Örneğin:

  • Depolama ilkeleriyle yapılandırılan dizinler için, yöneticinin kaynakla kısıtlı depolama türleri (SSD gibi) için depolama türü kotaları ayarlaması ve diğer depolama türleri için kotalar ayırması ve daha az kısıtlayıcı değerler veya varsayılan sınırsız toplam alan kotaları kullanması gerekir. HDFS, depolama stratejisine ve toplam alan kotasına göre iki hedef depolama türünden kotayı düşecektir;

  • Depolama ilkeleriyle yapılandırılmamış dizinler için, yöneticinin depolama türü kotalarını yapılandırmaması gerekir. Belirli bir depolama türü mevcut olmasa (veya mevcut olmasa da, ancak depolama türü bilgileri doğru şekilde yapılandırılmamışsa) bile, depolama türü kotaları yapılandırılabilir. Ancak, bu durumda, zorunlu depolama türü kotası için depolama türü bilgileri mevcut olmadığından veya yanlış olduğundan toplam alan kotasının kullanılması önerilir;

  • DİSK ana depolama ortamı olmadığı sürece, DİSK üzerindeki depolama türü kotası sınırlıdır. (Örneğin, esas olarak ARŞİV depolamaya sahip bir küme).

6.5 HDFS kısa devre yerel okuma

HDFS'de okuma genellikle DataNode'dan geçer. Bu nedenle, istemci DataNode'dan bir dosyayı okumasını istediğinde, DataNode dosyayı diskten okur ve verileri TCP yoluyla istemciye gönderir. Sözde "kısa devre" okuması, DataNode'u atlamak ve istemcinin dosyayı doğrudan okumasına izin vermektir. Açıkçası, bu yalnızca müşteri verilerle aynı yerde ise mümkündür. Kısa devre okumaları, birçok uygulama için önemli performans iyileştirmeleri sağlar.

6.6 HDFS'de merkezi önbellek yönetimi

Merkezi önbellek yönetimi, HDFS'de kullanıcıların HDFS tarafından önbelleğe alınacak yolu belirlemelerine olanak tanıyan açık bir önbellek mekanizmasıdır. NameNode, diskte gerekli bloklara sahip olan DataNode'larla iletişim kuracak ve blokları yığın dışı önbelleğe almaları talimatını verecektir.

HDFS'de merkezi önbellek yönetiminin birçok önemli avantajı vardır:

  • Açık kilitleme, sık kullanılan verilerin bellekten çıkarılmasını engeller. Bu, özellikle çalışma kümesinin boyutu, birçok HDFS iş yükü için ortak olan ana depolamanın boyutunu aştığında önemlidir;

  • DataNode önbelleği NameNode tarafından yönetildiğinden, uygulama, görev yerleştirme kararları verirken önbelleğe alınmış blok konumları kümesini sorgulayabilir. Görevlerin ve önbelleğe alınmış blok kopyaların konumlandırılması okuma performansını artırabilir;

  • Blok DataNode tarafından önbelleğe alındığında, istemci yeni ve daha verimli bir sıfır kopya okuma API'si kullanabilir. Önbelleğe alınan verilerin sağlama toplamı doğrulaması DataNode tarafından yapıldığından, istemci bu yeni API'yi kullanırken temelde sıfır ek yüke maruz kalabilir;

  • Merkezi önbellek, genel küme belleği kullanımını iyileştirebilir. Her DataNode'un işletim sistemi arabellek önbelleğine güvenirken, bir bloğun tekrar tekrar okunması, bloğun tüm n kopyasının arabellek önbelleğine çekilmesine neden olur. Merkezileştirilmiş önbellek yönetimi sayesinde, kullanıcılar sadece n adet kopyayı açıkça bulabilir ve böylece nm hafızadan tasarruf edebilir.

6.7 HDFS NFS Ağ Geçidi

NFS ağ geçidi, NFSv3'ü destekler ve HDFS'nin istemcinin yerel dosya sisteminin bir parçası olarak bağlanmasına izin verir. Mevcut NFS ağ geçidi, aşağıdaki kullanım modlarını destekler ve etkinleştirir:

  • Kullanıcılar, NFSv3 istemcisi uyumlu işletim sistemindeki yerel dosya sistemi aracılığıyla HDFS dosya sistemine göz atabilir;

  • Kullanıcılar HDFS dosya sisteminden yerel dosya sistemine dosya indirebilir;

  • Kullanıcılar yerel dosya sisteminden HDFS dosya sistemine doğrudan dosya yükleyebilir;

  • Kullanıcılar, bağlama noktası aracılığıyla verileri doğrudan HDFS'ye aktarabilir. Dosya ekleme desteklenir, ancak rastgele yazma desteklenmez.

NFS ağ geçidi makinesi, Hadoop JAR dosyaları, HADOOP_CONF dizini gibi HDFS istemcisini çalıştırmak için aynı şeylere ihtiyaç duyar. NFS ağ geçidi, DataNode, NameNode veya herhangi bir HDFS istemcisi ile aynı ana bilgisayarda bulunabilir.

6.8 HDFS'de genişletilmiş öznitelikler

Genişletilmiş öznitelikler (xattrs olarak kısaltılır), kullanıcı uygulamalarının diğer meta verileri dosyalar veya dizinlerle ilişkilendirmesine olanak tanıyan bir dosya sistemi özelliğidir. Sistem düzeyinde inode meta verilerinden farklı olarak (dosya izinleri veya değişiklik zamanı gibi), genişletilmiş öznitelikler sistem tarafından yorumlanmaz, ancak uygulamalar tarafından düğümler hakkında ek bilgi depolamak için kullanılır. Genişletilmiş nitelik, örneğin bir düz metin belgesinin karakter kodlamasını belirtmek için kullanılabilir.

6.8.1 HDFS genişletilmiş öznitelikler

HDFS'deki genişletilmiş öznitelikler, Linux'taki genişletilmiş özniteliklerden sonra modellenmiştir. Genişletilmiş öznitelikler, dize adları ve ikili değerlere sahip ad / değer çiftleridir. Xattrs adları ayrıca önekli bir ad alanı kullanmalıdır. Örneğin, kullanıcı ad alanında myXattr adlı bir xattr, user.myXattr olarak tanımlanacaktır. Birden çok xattr, tek bir inode ile ilişkilendirilebilir.

6.8.2 Ad alanı ve izinler

HDFS'de beş geçerli ad alanı vardır: kullanıcı, güvenilen, sistem, güvenlik ve ham. Bu ad alanlarının her birinin farklı erişim kısıtlamaları vardır.

Kullanıcının ad alanı genellikle istemci uygulaması tarafından kullanılan ad alanıdır. Kullanıcı ad alanındaki genişletilmiş özniteliklere erişim, ilgili dosya izinleri tarafından kontrol edilir.

Bu ad alanına genellikle kullanıcı alanı yöntemleriyle erişilemez. Bu xattr yalnızca dosya üzerinde ayarlanabilir ve süper kullanıcının dosyanın içeriğini okumasını engeller. Süper kullanıcılar, sahip, izinler vb. Gibi dosya meta verilerini okuyabilir ve değiştirebilir. Bu xattr herhangi bir kullanıcı tarafından ayarlanabilir ve erişilebilir.Bu xattr ayrıca bir kerelik yazılır ve ayarlandıktan sonra silinemez. Bu xattr değerlerin ayarlanmasına izin vermez.

6.9 HDFS'de şeffaf şifreleme

6.9.1 Genel Bakış

Hadoop Anahtar Yönetim Sunucusu (KMS), HadoopKeyProvider API'sine dayalı olarak yazılmış bir anahtar yönetim sunucusudur. Bir istemci ve bir sunucu bileşeni sağlar ve istemci ve sunucu HTTP protokolüne dayalı REST API kullanarak iletişim kurar. İstemci, KMS ile etkileşim kurmak için KMS HTTP REST API kullanan bir KeyProvider uygulamasıdır. KMS ve istemcisi yerleşik güvenlik mekanizmalarına sahiptir, HTTP SPNEGO Kerberos kimlik doğrulamasını ve HTTPS güvenli iletimini destekler. KMS, Hadoop dağıtımıyla birlikte gelen önceden yapılandırılmış bir Tomcat sunucusunda çalışan bir Java web uygulamasıdır.

HDFS şeffaflık ve uçtan uca şifreleme sağlar. Yapılandırma tamamlandıktan sonra, kullanıcı verileri HDFS'de depoladığında, kullanıcının herhangi bir program kodu değişikliği yapmasına gerek yoktur (yani veriler HDFS'de depolandığında verileri şifrelemek için KeyProvider API'sini çağırmak ve şifre çözme işlemi aynıdır). Bu, veri şifreleme ve şifre çözmenin müşteri tarafından yapıldığı anlamına gelir. HDFS, şifrelenmemiş verileri veya veri şifreleme anahtarlarını saklamaz veya bunlara erişmez (km'ler tarafından yönetilir).

6.9.2 Arka plana giriş

Giderek daha fazla kullanıcı, güvenlik sorunlarıyla ilgileniyor ve etkili ve kullanışlı bir şifreleme yöntemi arıyor. Hadoop, tüm düğüm verilerini şifreleyen, verileri etkin bir şekilde koruyan ancak daha ayrıntılı şifrelemeden yoksun olan en düşük düzeyde şifreleme olan birkaç farklı şifreleme biçimi sağlar;

kms şeffaf şifreleme daha ince taneli şifreleme sağlayabilir;

Şifreleme, yazılım / yazılım yığınları dahil olmak üzere farklı düzeylerde gerçekleştirilebilir. Farklı şifreleme düzeylerini seçmenin avantajları ve dezavantajları vardır:

  • Uygulama düzeyinde şifreleme. Bu en güvenli ve en esnek yöntemdir. Uygulama, şifrelenmiş içeriği büyük ölçüde kontrol edebilir ve kullanıcıların ihtiyaçlarını doğru bir şekilde yansıtabilir. Ancak yazma uygulamaları zordur. Bu, şifrelemeyi desteklemeyen mevcut uygulamaların müşterileri için bir seçenek değildir;

  • Veritabanı düzeyinde şifreleme. Benzer özelliklere sahip uygulama düzeyinde şifreleme. Çoğu veritabanı satıcısı bir tür şifreleme sağlar. Ancak performans sorunları ortaya çıkabilir. Bir örnek, indeksin şifrelenemeyeceğidir;

  • Dosya sistemi düzeyinde şifreleme. Bu seçenek, yüksek performans, uygulama şeffaflığı sağlar ve dağıtımı genellikle kolaydır. Ancak, bazı uygulama düzeyi politikaları modelleyemez. Örneğin, çok kiracılı bir uygulama, son kullanıcıya göre şifreleme yapmak isteyebilir. Veritabanı, tek bir dosyada saklanan her sütun için farklı şifreleme ayarları gerektirebilir;

  • Disk düzeyinde şifreleme. Kurulumu kolay ve yüksek performans, ancak aynı zamanda çok da esnek değil.

HDFS düzeyinde şifreleme, bu yığındaki veritabanı düzeyi ve dosya sistemi düzeyinde şifreleme için uygundur. Bunun çok olumlu bir etkisi var. HDFS şifrelemesi iyi performans sağlayabilir ve mevcut Hadoop uygulamaları şifrelenmiş verileri şeffaf bir şekilde çalıştırabilir. Politika kararları verirken, HDFS ayrıca geleneksel dosya sistemlerinden daha fazla bağlama sahiptir.

HDFS düzeyinde şifreleme, dosya sistemi düzeyinde ve altındaki saldırıları da ("işletim sistemi düzeyinde saldırılar" olarak adlandırılır) önleyebilir. Veriler HDFS tarafından şifrelenmiş olduğundan, işletim sistemi ve disk yalnızca şifrelenmiş baytlarla etkileşim halindedir.

6.10 HDFS, çok bağlantılı ağı destekler

Çok evli bir ağda, küme düğümleri birden çok ağ arabirimine bağlanır. Bunun birçok nedeni olabilir.

  • Emniyet : Güvenlik gereksinimleri, küme içindeki işin, kümeye ve kümeden veri aktarmak için kullanılan ağdan farklı bir ağla sınırlı olduğunu belirleyebilir.

  • verim : Kümedeki trafik, Fiber Kanal, Infiniband veya 10GbE gibi bir veya daha fazla yüksek bant genişliğine sahip ara bağlantı kullanabilir.

  • Yük devretme / fazlalık : Bir düğüm, ağ bağdaştırıcısı arızalarını işlemek için tek bir ağa bağlı birden çok ağ bağdaştırıcısına sahip olabilir.

6.11 HDFS'de bellek depolama desteği

HDFS, veri düğümleri tarafından yönetilen yığın dışı depolamaya yazmayı destekler. Veri düğümü, bellekteki verileri eşzamansız olarak diske atar, böylece yüksek performans gereksinimleri ile IO yolundan disk G / Ç ve sağlama toplamı hesaplamasını kaldırır, bu nedenle bu tür yazma Lazy Persist yazma diyoruz. HDFS, Geç Kalıcı yazma işlemleri için dayanıklılık garantileri sağlar. Kopya diskte saklanmadan önce, düğümün yeniden başlatılması durumunda veri kaybı meydana gelebilir. Uygulamalar, gecikmeyi azaltmak için bazı dayanıklılık garantilerinden ödün vermek için Lazy Persist yazmalarını kullanmayı seçebilir.

Bu özellik Apache Hadoop 2.6.0'dan itibaren mevcuttur.

Hedef kullanım durumu, düşük gecikmeyle nispeten küçük miktarlarda (kullanılabilir belleğe bağlı olarak birkaç GB'den onlarca GB'ye kadar) veri yazmaktan fayda sağlayacak bir uygulamadır. Bellek depolama, kümede çalışan ve HDFS veri düğümleriyle aynı yerde bulunan uygulamalar için kullanılır. Ağ çoğaltmasının gecikme ek yükünün, belleğe yazmanın yararını dengelediğini gözlemledik.

Lazy Persist ile yazılan uygulama çalışmaya devam edecek, bellek yetersizse veya yapılandırılmamışsa, DISK depolama alanına geri dönecektir.

6.12 HDFS Silme Kodu

6.12.1 Genel Bakış

Büyük veri teknolojisinin gelişmesiyle birlikte HDFS, Hadoop'un temel modüllerinden biri olarak yaygın bir şekilde kullanılmaktadır. Sistem güvenilirliği için HDFS, bu mekanizmayı çoğaltma yoluyla uygular. Ancak, HDFS'deki her veri parçasının iki kopyası vardır, bu da depolama kullanım oranını yalnızca 1/3 yapar ve her TB veri 3 TB depolama alanı gerektirir. Veri miktarı arttıkça, kopyalamanın maliyeti giderek daha belirgin hale gelir: geleneksel üç kopya, depolama ek yükünün% 200'lük bir artışına eşdeğerdir, bu da depolama alanı ve ağ bant genişliği üzerinde büyük bir baskı oluşturur. Bu nedenle, güvenilirliği sağlama öncülüğünde depolama kullanımının nasıl iyileştirileceği, mevcut HDFS uygulamalarının temel sorunlarından biri haline gelmiştir. Bu sorunlara yanıt olarak Intel ve Cloudera, veri güvenilirliğini sağlarken depolama ek yükünü büyük ölçüde azaltmak için Silme Kodlama (EC) teknolojisini sunmaya başladı.

Silme kodlaması, bir veri koruma teknolojisi olan EC olarak kısaltılmıştır. İlk olarak iletişim endüstrisinde veri iletiminde veri kurtarma için kullanıldı ve kodlama hatasına dayanıklı bir teknolojidir. Her parçanın verilerini alakalı hale getirmek için orijinal verilere yeni doğrulama verileri ekler. Belirli bir dizi veri hatası olması durumunda, silme kodlama teknolojisi ile kurtarılabilir.

6.12.2 Silme Kodu ve Reed Solomon Kodu

Depolama sisteminde silme kodlama teknolojisi, esas olarak doğrulamayı elde etmek için orijinal verileri kodlamak için silme kodlama algoritmasını kullanmak ve hata toleransı amacına ulaşmak için verileri ve doğrulamayı birlikte depolamaktır. Temel fikir, m bloğunun kontrol elemanlarını elde etmek için belirli bir kodlama hesaplaması yoluyla k bloklarının orijinal veri elemanlarını hesaplamaktır. K + m blok elemanları için, herhangi bir m blok elemanı yanlış olduğunda (veri ve kontrol hataları dahil), orijinal k bloğu verileri, karşılık gelen yeniden yapılandırma algoritması yoluyla geri yüklenebilir. Kontrol oluşturma sürecine kodlama, kayıp veri bloklarını kurtarma işlemine kod çözme denir.

Reed-Solomon (RS) kodu, depolama sistemlerinde yaygın olarak kullanılan bir silme kodudur ve RS (k, m) olarak belirtilen k ve m olmak üzere iki parametresi vardır. Şekil 1'de gösterildiği gibi, k veri bloğu ve m kontrol bloğundan oluşan bir kod sözcüğü vektörü elde etmek için bir k veri bloğu vektörü bir jeneratör matrisi (Jeneratör Matrisi) GT ile çarpılır. Bir veri bloğu kaybolursa, kayıp veri bloğunu kurtarmak için (GT) -1 kod sözcüğü vektörü ile çarpılabilir. RS (k, m) en fazla m blok kaybını (veri blokları ve eşlik blokları dahil) tolere edebilir.

6.12.3 BlockGroup

HDFS'deki sıradan bir dosya için, onu oluşturan temel birim bir bloktur. EC modundaki bir dosya için, onu oluşturan temel birim bir blok grubudur. Blok grubu, belirli sayıda veri bloğu ve oluşturulan kontrol bloklarından oluşur. RS (6,3) örnek alınarak, her blok grubu 1-6 veri bloğu ve 3 kontrol bloğu içerir. EC kodlamasının öncülü, her bloğun uzunluğunun aynı olmasıdır. Tutarlı değillerse 0 doldurulmalıdır. Şekil 2, üç farklı tipte blok grubunu ve bunların kodlarını gösterir.

6.12.4 Bitişik Yerleşim - Şerit Yerleşimi

Veriler sırayla bir bloğa yazılır ve ardından bir sonraki bloğa yazılmadan önce bir blok doludur Bu veri dağılımına sürekli düzen denir. QFS ve Ceph gibi bazı dağıtılmış dosya sistemlerinde başka bir düzen yaygın olarak kullanılır: şerit düzeni. Bir şerit, aynı boyutta birkaç hücreden oluşan bir dizidir. Şerit düzeninde, veriler sırayla şeridin her hücresine yazılır ve şerit dolduğunda bir sonraki şerit yazılır ve bir şeridin farklı hücreleri farklı veri bloklarında bulunur.

6.12.5 Silme Kodlama teknolojisinin avantajları ve dezavantajları

6.12.5.1 Avantajlar

Bir veri koruma teknolojisi olarak silme kodlama teknolojisinin doğal olarak birçok avantajı vardır.Çözülebilecek ilk şey mevcut dağıtılmış sistemdir.Bulut bilgi işlem, veri kaybını önlemek için kopyaları kullanır. Kopyalama mekanizması gerçekten de veri kaybı sorununu çözebilir, ancak iki katına çıkan veri depolama alanı kaçınılmaz olarak tüketilecektir ki bu çok ölümcüldür. EC teknolojisinin uygulanması bu sorunu doğrudan çözebilir.

6.12.5.2 Dezavantajlar

EC teknolojisinin avantajları gerçekten açıktır, ancak kullanımı da bir miktar maliyet gerektirir. Verilerin geri yüklenmesi gerektiğinde, iki ana kaynağın tüketilmesine neden olur:

  • Ağ bant genişliğinin tüketimi, çünkü veri kurtarmanın diğer veri bloklarını okuması ve blokları kontrol etmesi gerekir;

  • Kodlama ve kod çözme hesaplamaları CPU kaynakları gerektirir;

  • Genel olarak konuşursak, hem ağ hem de CPU tüketiyor ve maliyetin düşük olmadığı görülüyor. Bu şekilde bakıldığında, bunu çevrimiçi hizmetler için kullanmak yeterince kararlı olmadığını düşünebilir, bu nedenle en iyi seçim soğuk veri kümeleri içindir.Bu seçimi desteklemenin iki nedeni vardır;

  • Soğuk veri kümeleri genellikle uzun süredir erişilmemiş büyük miktarda veriye sahiptir ve hacim gerçekten büyüktür EC teknolojisinin kullanımı kopya sayısını büyük ölçüde azaltabilir;

  • Soğuk veri kümesi temelde kararlıdır ve daha az kaynak tüketir, bu nedenle veriler geri yüklendiğinde, küme üzerinde büyük bir etkisi olmayacaktır.

Yukarıdaki iki nedenden dolayı, soğuk veri kümesi iyi bir seçimden başka bir şey değildir.

6.13 Sentetik Yük Üreteci

Sentetik Yük Oluşturucu (SLG), farklı istemci yükleri altında NameNode'un davranışını test etmek için kullanılan bir araçtır. Kullanıcılar, okuma ve yazma olasılığını belirterek farklı okuma, yazma ve listeleme isteklerinin karışımlarını oluşturabilir. Kullanıcı, çalışan iş parçacığı sayısını ve işlemler arasındaki gecikme parametrelerini ayarlayarak yükün yoğunluğunu kontrol eder. Yük üreteci çalışırken, kullanıcılar NameNode'un çalışmasını yapılandırabilir ve izleyebilir. Yük Oluşturucu çıktığında, her işlemin ortalama yürütme süresi ve NameNode verimi gibi bazı NameNode istatistiklerini yazdıracaktır.

Bu sayıdaki "Hadoop'u Tek Bir Makalede Anlamak" yazı dizisindeki özel içerik Hadoop'a ilk giriş ve ardından HDFS, MAPREDUCE ve YARN'ın tüm bilgi noktalarının çerçevesine ayrıntılı bir girişe dayanarak, İçerik dört konuya bölünmüş ve son birkaç gün içinde yayınlanmıştır. Takip içeriği için bizi izlemeye devam edin.

Daha heyecan verici kuru ürün içeriği için lütfen Tsinghua-Qingdao Veri Bilimi Enstitüsü "Datapai THU" nun resmi kamu platformunu araştırın ve takip edin

Odak analizi | Xiaomi tanıdık gelmiyor, Lei Jun rahatlık alanından çıkıyor
önceki
Will Smith nihayet garip çete kavgasına katılmaya ve üşütmeyi ve uzaylıları dövmeyi bırakmaya karar verdi
Sonraki
Özel | Bir makalede Hadoop'u anlama (2) HDFS (açık)
"Hırsızlık olayı" değişmeye devam ediyor, Youku ve Tencent Video bir telif hakkı anlaşmazlığından daha fazlası
Bay 60 milyon dünya çapında bir performans daha sahneledi! 2 Eski uluslararası onun tarafından küçük düşürüldü ve yardım edemedi
Leaper'ın ilk seri üretilen modeli S01 piyasaya sürüldü
Özel | Bir makalede Hadoop'u Anlamak (1): Genel Bakış
Rockets'daki "Rolls Royce" nasıl çıktı, okuduktan sonra da yorum yapabilirsiniz
Ülkemiz 99 yıldır yeni tarz noktalama işaretleri kullanıyor
Özel Medikal görüntülerde beyin benzeri hesaplama uygulaması (PPT indirme ile)
Caidian köyün evsel kanalizasyonunu işliyor, 70.000 çiftçi bundan yararlanacak
Mod, hizmet ve gücü birleştiren 1919, bu yıl iki katına çıkar 11 satış 150 milyon
Özel Tek bir makalede konuşma tanıma (öğrenme kaynakları ile)
Luneng'in 96 dakikalık hikâyesi uçup gitti! Çin Süper Ligi hakemi büyük tartışmalara neden oldu ve tüm dünya bunu anlamadı
To Top