Bu makalede, PowerScale olmayan Hadoop ortamlarının Dell PowerScale kümesine yedeklenmesine ilişkin olarak önerilen en iyi uygulamalar açıklanmaktadır. Dell PowerScale, %80'den fazla depolama verimliliği sağlayan güçlü silme kodlaması veri korumasıyla, Hadoop kümesinde yer alan veriler için ideal bir yedekleme hedefidir. DistCp (dağıtılmış kopya), tüm Hadoop dağıtımları ve sürümleriyle birlikte gelen standart bir araçtır. DistCp, bir Hadoop dizininin tamamını kopyalayabilir. DistCp, dosyaları paralel olarak kopyalamak için MapReduce işi olarak çalışır ve gerekirse sisteminizi tam kapasitede kullanır. Ayrıca diğer görevler üzerindeki etkiyi kontrol etmek için bant genişliğini sınırlama seçeneği de mevcuttur.
ORTAM
Bu makalede aşağıdaki test ortamı kullanılır:
DistCp standart bir Hadoop aracı olduğundan, bu belgede özetlenen yaklaşım, diğer tüm Hadoop dağıtımları ve sürümleri için olmasa bile çoğu için geçerlidir.
Bu belgeyi okurken yedekleme verilerinin /mydata dizinindeki PHD Hadoop HDFS kümesinde yer aldığını varsayın. Örnekler, bu verileri /ifs/hadoop/backup/mydata dizinindeki PowerScale kümesine yedekler.
Şekil 1: Isilon'a Hadoop Kümesi Yedekleme
En basit yedekleme komutu aşağıda gösterilmiştir:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata
Yukarıdaki komutu, Hadoop istemcisi (hadoop) yüklü olan herhangi bir ana bilgisayarda çalıştırabilirsiniz. Komutu çalıştıran kullanıcının, kaynak dosyaları okuma ve hedef dosyaları yazma izinleri olması gerekir.
PowerScale kümesine yerleştirilen hedef dosyalarda CRC denetimi yapılmasını önlemek için -skipcrccheck ve -update seçenekleri belirtilmelidir. PowerScale, Hadoop CRC'yi depolamaz ve hesaplanması çok pahalı olur. Dolayısıyla, CRC denetimiyle ilgili hataları önlemek için bu seçenekler gereklidir.
Sonraki parametre olan "/mydata", kaynak Hadoop kümesindeki kaynak yoludur. Tüm HDFS ad alanınızı yedeklemek için "/" de kullanabilirsiniz. Yol tam olarak uygun olmadığından core-site.xml dosyasının fs.defaultFS parametresinde belirtilen HDFS NameNode'u kullanır.
Son parametre "hdfs://all-nc-s-hdfs/backup/mydata", PowerScale kümenizdeki hedef yoludur. "all-nc-s-hdfs" ana bilgisayar bölümü, all-nc-s-hdfs.example.com. gibi göreli veya tam nitelikli bir DNS adı olabilir. PowerScale kümenizin SmartConnect Bölge DNS adı olması gerekir. "/backup/mydata" dizin bölümü, PowerScale kümesi erişim bölgenizde tanımlanan HDFS kök yoluna görelidir. HDFS kök yolunuz /ifs/hadoop isebu değer /ifs/hadoop/backup/mydata yolunu belirtir.
Kaynak ve hedef dizinlerde boyutları aynı olan dosyaların değiştirilmediği varsayılır ve kopyalanmazlar. Özellikle de değiştirilen dosyaları belirlemek için dosya zaman damgaları kullanılamaz. DistCp hakkında daha fazla bilgi için Hadoop DistCp Version 2 Guide (İngilizce) belgesine bakın.
İZİN KOPYALAMA
Varsayılan olarak, hedef dosyaların sahibi, grubu ve izinleri, DistCp'yi başlatan kullanıcı tarafından oluşturulan yeni dosyalar için varsayılana sıfırlanır. Kaynak dosya için tanımlanan tüm sahipler, gruplar ve izinler kaybolur. Bu bilgileri kaynak dosyalardan geri almak için -p seçeneğini kullanın. -p seçeneğinin chown/chgrp gerçekleştirmesi gerektiğinden, DistCp'yi başlatan kullanıcının hedef sistemde süper kullanıcı olması gerekir. Bu amaç için PowerScale kümesindeki kök kullanıcı kullanılabilir. Örneğin: [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
YEDEKLEME KAYNAĞINIZ İÇİN ANLIK GÖRÜNTÜLER KULLANMA
Büyük veri kümelerini yedeklenmesi uzun zaman alabilir. DistCp işleminin başında, dizin yapısı taranırken mevcut olan dosyalar, dosya kopyalandıktan sonra artık mevcut olmayabilir. Dosyalardaki bu değişiklik hatalara yol açar. Ayrıca bir uygulamanın kullanılabilir olabilmesi için tutarlı bir zaman içinde tek nokta yedeklemesi gerekli olabilir. Dolayısıyla, yedekleme işlemi sırasında veri kümesinin değişmesini engellemek ve bu sorunları önlemek amacıyla, kaynağınızın bir HDFS anlık görüntüsünü oluşturmanız önerilir. Bu, hedef PowerScale kümenizin SnapshotIQ özelliğiyle ilgili değildir.
HDFS anlık görüntülerini kullanabilmek için öncelikle belirli bir dizin için anlık görüntülere izin vermeniz gerekir:[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
DistCp ile yedekleme yapmadan hemen önce HDFS anlık görüntüsünü oluşturun:
[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnapBu anlık görüntünün adı backupsnap
'tir. Bu dosyaya HDFS yolu /mydata/.snapshot/backupsnap üzerinden erişebilirsiniz. Bu anlık görüntüden sonra HDFS dosyalarında yapılan değişiklikler sonraki yedeklemeye yansıtılmaz. Şu komutu kullanarak anlık görüntüyü PowerScale'e yedekleyebilirsiniz:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata
Yedekleme komutunun çalıştırılması sona erdiğinde anlık görüntüyü silebilirsiniz. Bunu yaptığınızda, şu anlık görüntü oluşturulduktan sonra değiştirilen dosyaların eski sürümlerini tutmak için kullanılan tüm alan boşaltılır:
[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap
YEDEKLEME HEDEFİNİZ İÇİN PowerScale ANLIK GÖRÜNTÜLERİ KULLANMA
Yedekleme kaynağınız için anlık görüntülerin kullanılmasından bağımsız olarak, dosyaların eski sürümlerini geri yükleyebilmek için yedekleme hedef dizininizin birden fazla anlık görüntüsünü tutmanız gerekebilir.
PowerScale'de anlık görüntüler oluşturmak için SnapshotIQ lisansına sahip olmanız gerekir. Anlık görüntüler oluşturmak için web yöneticisi arayüzünü veya CLI'yi kullanabilirsiniz. CLI ile manuel olarak tek bir PowerScale anlık görüntüsü oluşturmak için SSH kullanarak herhangi bir PowerScale düğümüne erişin ve aşağıdaki komutu çalıştırın:all-nc-s-1# isi snapshot snapshots create /ifs/hadoop/backup/mydata --name backup-2014-07-01 --expires 1D --verbose
Created snapshot backup-2014-07-01 with ID 6
Bu komutu, aşağıdaki Yedeklemeleri Zamanlama bölümünde ele alınan yedekleme işlemine ekleyebilirsiniz.
PowerScale OneFS anlık görüntüleriyle ilgili daha fazla bilgi için OneFS sürümünüzün PowerScale OneFS CLI Yönetim Rehberi'ne bakın: PowerScale OneFS Bilgi Merkezleri
BİRDEN FAZLA PowerScale KÜMESİ İÇİN SYNCIQ ÇOĞALTMA
PowerScale kümesine yapılan DistCp yedeklemesi tamamlandıktan sonra, anlık görüntüleri WAN üzerinden diğer PowerScale kümelerine kopyalamak için OneFS SyncIQ kullanabilirsiniz. Çoğaltılmış anlık görüntüler, felaket kurtarma stratejinizin çok yönlü ve verimli bir bileşeni olarak kullanılabilir.
Şekil 2: Birden fazla Isilon kümesi için SynIQ Çoğaltma
SİLİNEN DOSYALARA YÖNELİK İŞLEM
Varsayılan olarak, kaynak Hadoop kümesinden silinen dosyalar hedef Hadoop kümesinden silinmez. Bu davranışın uygulanmasını istiyorsanız DistCp komutuna -delete argümanını ekleyin. Bu komutu kullanırken silinen dosyaların kurtarılmasına imkan tanımak için yedekleme hedefinde anlık görüntülerin kullanılması önerilir.
YEDEKLEMELERİ ZAMANLAMA
Hadoop kümesi yedekleme adımlarını, çeşitli yöntemler kullanarak otomatik hale getirebilir ve planlayabilirsiniz. Genellikle Hadoop görevlerini otomatik hale getirmek için Apache Oozie kullanılır ve doğrudan DistCp'yi destekler. Ayrıca Shell komut dosyası çalıştırmak için CRON da kullanılabilir. SSH oturumunda komut çalıştırmayı otomatik hale getirmek için parolasız SSH'yi etkinleştirin. Parolasız SSH, bir CRON kullanıcısının Hadoop istemcinize ve PowerScale kümenize (SnapshotIQ kullanılıyorsa) bağlamasına imkan tanır.
PowerScale'in HDFS desteği sayesinde, PowerScale'deki yedekleme hedef dosyalarına, kaynak dosyaları için olduğu gibi Hadoop uygulamalarından erişilebilir. Yedekleme verilerinizi ilk önce orijinal kaynak Hadoop ortamınıza geri yüklemeniz gerekmeden doğrudan kullanabilirsiniz. Bu özellik, analiz süresi kazanmayı sağlar. Örneğin, aşağıdaki gibi bir MapReduce komutu çalıştırdığınızda:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC
Aşağıdaki komutu kullanarak MapReduce işini PowerScale'deki yedek veri kümesi için çalıştırabilirsiniz:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC
fs.defaultFS parametresini kullanmak yerine tam nitelikli bir Hadoop yolu belirtmek istiyorsanız bu konuda bilgi almak için uygulama sağlayıcınıza başvurun. Ayrıca yüksek performans yerine yedekleme ve arşivleme için tasarlanmış bir PowerScale kümesinin, birincil Hadoop ortamınız ile aynı performansı sağlamaması olasıdır. Test etme önerilir. Bunun yerine, doğru boyutlandırma için Dell PowerScale'e de danışabilirsiniz.