I den här artikeln beskrivs rekommenderad bästa praxis för säkerhetskopiering av Hadoop-miljöer som inte kommer från PowerScale till ett Dell PowerScale-kluster. Med sitt robusta kodade dataskydd som ger större än 80 % bättre lagringseffektivitet är Dell PowerScale ett perfekt säkerhetskopieringsmål för data som finns i ett Hadoop-kluster. DistCp (distributed copy) är ett standardverktyg som medföljer alla Hadoop-distributioner och -versioner. DistCp kan kopiera hela Hadoop-kataloger. DistCp körs som ett MapReduce-jobb för att utföra filkopior parallellt och använda dina system fullständigt vid behov. Det finns även ett alternativ för att begränsa bandbredden för att styra påverkan på andra uppgifter.
MILJÖ
I den här artikeln används följande testmiljö:
Eftersom DistCp är ett vanligt Hadoop-verktyg gäller metoden som beskrivs i det här dokumentet för de flesta, om inte alla andra Hadoop-distributioner och -versioner.
När du läser det här dokumentet, anta att data som ska säkerhetskopieras finns på PHD Hadoop HDFS-klustret i katalogen /mydata. Exemplen säkerhetskopierar dessa data till PowerScale-klustret i katalogen /ifs/hadoop/backup/mydata.
Bild 1: Säkerhetskopiera ett Hadoop-kluster till Isilon
Det enklaste säkerhetskopieringskommandot visas nedan:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata
Du kan köra ovanstående kommando på alla värdar som har Hadoop-klienten (hadoop) installerad. Användaren som kör kommandot måste ha behörighet att läsa källfilerna och skriva målfilerna.
Alternativen -skipcrccheck och -update måste anges för att undvika CRC-kontrollen av målfilerna som finns i PowerScale-klustret. PowerScale lagrar inte Hadoop CRC, och det skulle bli för dyrt att beräkna det. Därför krävs dessa alternativ för att förhindra fel som är relaterade till CRC-kontrollen.
Nästa parameter "/mydata" är källsökvägen i Hadoop-källklustret. Det kan också vara "/" för att säkerhetskopiera hela HDFS-namnrymden. Eftersom sökvägen inte är fullständigt kvalificerad använder den HDFS NameNode som anges i fs.defaultFS-parametern core-site.xml.
Den sista parametern "hdfs://all-nc-s-hdfs/backup/mydata" är målsökvägen på PowerScale-klustret. Värddelen "all-nc-s-hdfs" kan vara ett relativt eller fullständigt kvalificerat DNS-namn, t.ex. all-nc-s-hdfs.example.com. Det ska vara DNS-namnet på SmartConnect Zone för PowerScale-klustret. Katalogdelen "/backup/mydata" är i förhållande till HDFS-rotsökvägen som definierats i Åtkomstzonen för PowerScale-klustret. Om HDFS-rotsökvägen är /ifs/hadoopbetyder det här värdet för /ifs/hadoop/backup/mydata.
Filer vars storlekar är identiska på käll- och målkataloger antas vara oförändrade och kopieras inte. I synnerhet används inte tidsstämplar för filer för att fastställa ändrade filer. Mer information om DistCp finns i Hadoop DistCp version 2-manualen.
KOPIERA BEHÖRIGHETER
Som standard återställs målfilernas ägare, grupp och behörigheter till standardinställningarna för nya filer som skapats av användaren och initierar DistCp. Alla ägare, grupper och behörigheter som definierats för källfilen går förlorade. Använd alternativet -p för att behålla den här informationen från källfilerna. Eftersom alternativet -p måste utföra chown/chgrp måste användaren som initierar DistCp vara en superanvändare i målsystemet. Rotanvändaren i PowerScale-klustret fungerar för detta ändamål. Till exempel: [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
ANVÄNDA SNAPSHOTS FÖR SÄKERHETSKOPIERINGSKÄLLAN
Säkerhetskopiering av stora datauppsättningar kan ta lång tid. Filer som finns i början av DistCp-processen när katalogstrukturen skannas kanske inte längre finns när den filen kopieras. Den här ändringen av filer ger upphov till fel. Dessutom kan ett program kräva en konsekvent säkerhetskopiering av en enskild tidpunkt för att det ska vara användbart. För att lösa dessa problem rekommenderar vi att du skapar en HDFS-snapshot av källan för att säkerställa att datauppsättningen inte ändras under säkerhetskopieringen. Det här är inte relaterat till SnapshotIQ-funktionen i PowerScale-målklustret.
Om du vill använda HDFS-snapshots måste du först tillåta snapshots för en viss katalog:[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
Omedelbart före en säkerhetskopiering med DistCp skapar du HDFS-snapshot:[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnap
Namnet på den här snapshoten är backupsnap.
Du kommer åt den på HDFS-sökvägen /mydata/.snapshot/backupsnap. Eventuella ändringar av HDFS-filerna efter den här ögonblicksbilden återspeglas inte i den efterföljande säkerhetskopieringen. Du kan säkerhetskopiera ögonblicksbilden till PowerScale med hjälp av följande kommando:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata
När säkerhetskopieringskommandot körs kan du ta bort ögonblicksbilden. På så sätt frigör du allt utrymme som används för att spara äldre versioner av filer som ändrats sedan snapshotet:
[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap
ANVÄNDA PowerScale SNAPSHOTS FÖR SÄKERHETSKOPIERINGSMÅL
Oberoende av att använda snapshots för säkerhetskopieringskällan kanske du vill behålla flera snapshots av målkatalogen för säkerhetskopiering för att återställa äldre versioner av filer.
Om du vill skapa snapshots i PowerScale måste du ha en SnapshotIQ-licens. Du kan skapa snapshots med hjälp av webbadministratörsgränssnittet eller CLI. Skapa en enda PowerScale-snapshot manuellt med CLI genom att SSH-ansluta till valfri PowerScale-nod och köra följande: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
Du kan lägga till det här kommandot i säkerhetskopieringsprocessen som beskrivs i avsnittet Scheduling Backups nedan.
Mer information om PowerScale OneFS-snapshots finns i administrationsmanualen för PowerScale OneFS CLI för din version av OneFS: Informationshubbar
för PowerScale OneFSSYNCIQ-REPLIKERING FÖR FLERA PowerScale-KLUSTER
När DistCp-säkerhetskopieringen till PowerScale-klustret har slutförts kan du använda OneFS SyncIQ för att replikera snapshots över ett WAN till andra PowerScale-kluster. Replikerade snapshots kan vara en mångsidig och effektiv komponent i din strategi för katastrofåterställning.
Bild 2: SynIQ-replikering för flera Isilon-klusterSOM HANTERAR BORTTAGNA
FILER
Som standard tas filer som tagits bort från Hadoop-källklustret inte bort från Hadoop-målklustret. Om du behöver det lägger du till argumentet -delete i DistCp-kommandot. När du använder det här kommandot rekommenderar vi att du använder snapshots på säkerhetskopieringsmålet för att möjliggöra återställning av borttagna filer.
SCHEMALÄGGA SÄKERHETSKOPIERINGAR
Du kan automatisera och schemalägga stegen för att säkerhetskopiera ett Hadoop-kluster med olika metoder. Apache Oo alias används ofta för att automatisera Hadoop-uppgifter och har direkt stöd för DistCp. CRON kan även användas för att köra ett Shell-skript. Aktivera lösenordsfri SSH för att automatisera körning av kommandon i en SSH-session. Med den lösenordslösa SSH-enheten kan en CRON-användare ansluta till Hadoop-klienten och PowerScale-klustret (om du använder SnapshotIQ).
Målfilerna för säkerhetskopiering i PowerScale är tillgängliga från Hadoop-program på samma sätt som källfilerna, på grund av PowerScales stöd för HDFS. Du kan använda dina säkerhetskopieringsdata direkt utan att behöva återställa dem till den ursprungliga källans Hadoop-miljö. Den här funktionen sparar analystid. Om du till exempel kör ett MapReduce-kommando som det här:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC
Du kan köra MapReduce-jobbet mot säkerhetskopieringsdatauppsättningen på PowerScale med följande kommando:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC
Om du vill ange en fullständigt kvalificerad Hadoop-sökväg i stället för att använda parametern fs.defaultFS kontrollerar du med programleverantören för mer information. Dessutom har ett PowerScale-kluster som är utformat för säkerhetskopiering och arkivering i stället för för hög prestanda sannolikt inte att ge samma prestanda som din primära Hadoop-miljö. Testning rekommenderas, eller rådgör med Dell PowerScale för korrekt storlek.