Dit artikel beschrijft de aanbevolen best practices voor het maken van back-ups van niet-PowerScale Hadoop-omgevingen naar een Dell PowerScale cluster. Dell PowerScale is een ideaal back-updoel voor data op een Hadoop cluster met robuuste databescherming die een storage-efficiëntie van meer dan 80% biedt. DistCp (distributed copy) is een standaardtool die wordt geleverd met alle Hadoop distributies en versies. DistCp kan volledige Hadoop-mappen kopiëren. DistCp wordt uitgevoerd als mapreduce-taak om parallelle bestandskopieën uit te voeren, waarbij uw systemen volledig worden gebruikt, indien nodig. Er is ook een optie om de bandbreedte te beperken om de impact op andere taken te beheren.
MILIEU
Dit artikel gebruikt de volgende testomgeving:
Omdat DistCp een standaard Hadoop-tool is, is de benadering die in dit document wordt beschreven van toepassing op de meeste, zo niet alle andere Hadoop-distributies en -versies.
Tijdens het lezen van dit document wordt ervan uitgegaan dat de data waarvan u een back-up wilt maken zich bevindt op het PHD Hadoop HDFS cluster in de directory /mydatate installeren. De voorbeelden maken een back-up van deze data naar het PowerScale cluster in de directory /ifs/hadoop/backup/mydata.
Afbeelding 1: Maak een back-up van een Hadoop cluster naar Isilon
De eenvoudigste back-upopdracht wordt hieronder weergegeven:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata
U kunt de bovenstaande opdracht uitvoeren op elke host waarop de Hadoop-client (hadoop) is geïnstalleerd. De gebruiker die de opdracht uitvoert, moet machtigingen hebben om de bronbestanden te lezen en de doelbestanden te schrijven.
De opties -skipcrccheck en -update moeten worden opgegeven om te voorkomen dat de CRC-controle wordt uitgevoerd op de doelbestanden die op het PowerScale cluster worden geplaatst. PowerScale slaat de Hadoop CRC niet op en de berekening ervan zou te duur zijn. Daarom zijn deze opties vereist om fouten met betrekking tot de CRC-controle te voorkomen.
De volgende parameter "/mydata" is het bronpad op het bron-Hadoop cluster. Dit kan ook "/" zijn om een back-up te maken van uw volledige HDFS-naamruimte. Aangezien het pad niet volledig gekwalificeerd is, wordt de HDFS NameNode gebruikt die is opgegeven in de parameter fs.defaultFS van core-site.xml.
De laatste parameter 'hdfs://all-nc-s-hdfs/backup/mydata' is het doelpad op uw PowerScale cluster. Het hostgedeelte "all-nc-s-hdfs" kan een relatieve of volledig gekwalificeerde DNS-naam zijn, zoals all-nc-s-hdfs.example.com. Dit moet de SmartConnect Zone DNS-naam zijn voor uw PowerScale cluster. Het mapgedeelte '/backup/mydata' is relatief ten opzichte van het HDFS-hoofdpad dat is gedefinieerd in uw PowerScale clustertoegangszone. Als uw HDFS-hoofdpad /ifs/hadoopverwijst deze waarde naar /ifs/hadoop/backup/mydata.
Bestanden waarvan de grootte identiek is op de bron- en doelmappen worden ervan uitgegaan dat ze ongewijzigd zijn en niet worden gekopieerd. Met name bestandstijdstempels worden niet gebruikt om gewijzigde bestanden te bepalen. Zie de Hadoop DistCp versie 2-handleiding voor meer informatie over DistCp.
MACHTIGINGEN
KOPIËRENStandaard worden de eigenaar, groep en machtigingen van de doelbestanden teruggezet op de standaardinstelling voor nieuwe bestanden die zijn gemaakt door de gebruiker die DistCp initieert. Elke eigenaar, groep en machtigingen die zijn gedefinieerd voor het bronbestand gaan verloren. Gebruik de optie -p om deze informatie uit de bronbestanden te bewaren. Omdat de optie -p moet uitvoerenvp/chgrp, moet de gebruiker die DistCp initieert een supergebruiker zijn op het doelsysteem. De root-gebruiker op het PowerScale cluster werkt hiervoor. Bijvoorbeeld: [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
SNAPSHOTS GEBRUIKEN VOOR UW BACK-UPBRON
Het maken van een back-up van grote datasets kan lang duren. Bestanden die bestaan aan het begin van het DistCp-proces wanneer de mapstructuur wordt gescand, kunnen niet meer bestaan wanneer dat bestand wordt gekopieerd. Deze wijziging in bestanden veroorzaakt fouten. Bovendien kan een applicatie een consistente single point-in-time back-up nodig hebben om deze bruikbaar te maken. Om deze problemen op te lossen, is het raadzaam om een HDFS-snapshot van uw bron te maken om ervoor te zorgen dat de dataset tijdens het back-upproces niet wordt gewijzigd. Dit heeft geen betrekking op de SnapshotIQ-functie van uw doel PowerScale cluster.
Als u HDFS-snapshots wilt gebruiken, moet u eerst snapshots toestaan voor een bepaalde directory:[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
Maak direct vóór een back-up met DistCp de HDFS-snapshot:
[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnap
De naam van deze snapshot is backupsnap. U kunt het openen via het HDFS-pad /mydata/.snapshot/backupsnap. Wijzigingen in uw HDFS-bestanden na deze snapshot worden niet weergegeven in de volgende back-up. U kunt een back-up van de snapshot maken naar PowerScale met behulp van de volgende opdracht:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata
Wanneer de back-upopdracht is uitgevoerd, kunt u de snapshot verwijderen. Hierdoor wordt alle ruimte vrijgemaakt die wordt gebruikt voor oudere versies van bestanden die zijn gewijzigd sinds de snapshot:
[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap
POWERScale SNAPSHOTS GEBRUIKEN VOOR UW BACK-UPDOEL
Afhankelijk van het gebruik van snapshots voor uw back-upbron, kunt u meerdere snapshots van uw back-updoelmap bewaren om oudere versies van bestanden te herstellen.
Als u snapshots wilt maken op PowerScale, moet u over een SnapshotIQ-licentie beschikken. U kunt snapshots maken met behulp van de webbeheerinterface of CLI. Als u handmatig een Enkele PowerScale snapshot met de CLI wilt maken, SSH naar elk PowerScale knooppunt en voert u het volgende uit: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
U kunt deze opdracht toevoegen aan het back-upproces dat wordt besproken in het gedeelte Planningsback-ups hieronder.
Zie de PowerScale OneFS CLI Administration Guide voor uw versie van OneFS voor meer informatie over PowerScale OneFS snapshots: PowerScale OneFS infohubs
SYNCIQ REPLICATIE VOOR MEERDERE PowerScale CLUSTERS
Nadat de DistCp back-up naar het PowerScale cluster is voltooid, kunt u OneFS SyncIQ gebruiken om snapshots over een WAN te repliceren naar andere PowerScale clusters. Gerepliceerde snapshots kunnen een veelzijdig en efficiënt onderdeel van uw strategie voor disaster recovery bieden.
Afbeelding 2: SynIQ Replicatie voor meerdere Isilon clusters
DIE VERWIJDERDE BESTANDEN
VERWERKEN Bestanden die zijn verwijderd uit het bron-Hadoop cluster worden standaard niet verwijderd uit het doel-Hadoop cluster. Als u dit gedrag nodig hebt, voegt u het argument -delete toe aan de opdracht DistCp. Wanneer u deze opdracht gebruikt, wordt aanbevolen om snapshots te gebruiken op het back-updoel om het herstel van verwijderde bestanden mogelijk te maken.
BACK-UPS
PLANNENU kunt de stappen voor het maken van een back-up van een Hadoop cluster op verschillende manieren automatiseren en plannen. Apache Oozie wordt vaak gebruikt om Hadoop-taken te automatiseren en ondersteunt direct DistCp. CRON kan ook worden gebruikt om een Shell-script uit te voeren. Als u het uitvoeren van opdrachten in een SSH-sessie wilt automatiseren, schakelt u SSH zonder wachtwoord in. Met de wachtwoordloze SSH kan een CRON-gebruiker verbinding maken met uw Hadoop-client en uw PowerScale cluster (als u SnapshotIQ gebruikt).
De back-updoelbestanden op PowerScale zijn op dezelfde manier toegankelijk vanuit Hadoop-applicaties als de bronbestanden, vanwege de ondersteuning van PowerScale voor HDFS. U kunt uw back-updata rechtstreeks gebruiken, zonder deze eerst terug te zetten naar uw oorspronkelijke bron-Hadoop-omgeving. Deze mogelijkheid bespaart analysetijd. Als u bijvoorbeeld een mapreduce-opdracht als deze uitvoert:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC
U kunt de MapReduce-taak uitvoeren op de back-updataset op PowerScale met behulp van de volgende opdracht:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC
Als u een volledig gekwalificeerd Hadoop-pad wilt opgeven in plaats van de parameter fs.defaultFS te gebruiken, raadpleegt u uw applicatieprovider voor meer informatie. Een PowerScale cluster dat is ontworpen voor back-up en archivering, in plaats van voor hoge prestaties, biedt waarschijnlijk niet dezelfde prestaties als uw primaire Hadoop-omgeving. Testen wordt aanbevolen of neem contact op met Dell PowerScale voor de juiste grootte.