En este artículo, se describen las mejores prácticas recomendadas para el respaldo de entornos Hadoop que no son PowerScale a un clúster Dell PowerScale. Con su sólida protección de datos de codificación por borrado que proporciona una eficiencia de almacenamiento de más del 80 %, Dell PowerScale es un objetivo de respaldo ideal para los datos ubicados en un clúster Hadoop. Una DistCp (copia distribuida) es una herramienta estándar que viene con todas las distribuciones y versiones de Hadoop. Una DistCp puede copiar directorios completos de Hadoop. Una DistCp se ejecuta como un trabajo de MapReduce para ejecutar copias de archivos en paralelo usando completamente los sistemas si es necesario. También hay una opción para limitar el ancho de banda a fin de controlar el impacto en otras tareas.
ENTORNO
En este artículo, se utiliza el siguiente entorno de pruebas:
Debido a que DistCp es una herramienta estándar de Hadoop, el enfoque descrito en este documento se aplica a la mayoría de las distribuciones y versiones de Hadoop, si no es que a todas las demás.
Durante la lectura de este documento, supongamos que los datos que se respaldarán se encuentran en el clúster PHD Hadoop HDFS en el directorio /mydata. Los ejemplos respaldan estos datos en el clúster PowerScale en el directorio /ifs/hadoop/backup/mydata
Figura 1: Respaldo de un clúster Hadoop en Isilon
El comando de respaldo más simple se muestra a continuación:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata
Puede ejecutar el comando anterior en cualquier host que tenga instalado el cliente Hadoop (hadoop). El usuario que ejecuta el comando debe tener permisos para leer los archivos fuente y escribir los archivos objetivo.
Las opciones -skipcrccheck y -update se deben especificar para evitar la comprobación de CRC en los archivos objetivo que se colocan en el clúster PowerScale. PowerScale no almacena el CRC de Hadoop y calcularlo sería demasiado costoso. Por lo tanto, estas opciones son necesarias para evitar errores relacionados con la comprobación de CRC.
El siguiente parámetro “/mydata” es la ruta fuente en el clúster Hadoop de origen. Esto también podría ser “/” para respaldar todo el espacio de nombres de HDFS. Dado que la ruta no está completamente calificada, utiliza el NameNode de HDFS especificado en el parámetro fs.defaultFS de core-site.xml.
El parámetro final “hdfs://all-nc-s-hdfs/backup/mydata” es la ruta objetivo del clúster de PowerScale. La parte del host “all-nc-s-hdfs” puede ser un nombre DNS relativo o calificado, como all-nc-s-hdfs.example.com. Debe ser el nombre DNS de la zona SmartConnect para el clúster PowerScale. La parte del directorio “/backup/mydata” se relaciona con la ruta raíz de HDFS definida en la zona de acceso del clúster de PowerScale. Si la ruta raíz de HDFS es /ifs/hadoop, entonces este valor se refiere a /ifs/hadoop/backup/mydata.
Se supone que los archivos cuyos tamaños son idénticos en los directorios fuente y objetivo no se modifican ni se copian. En particular, no se utilizan los registros de fecha y hora de los archivos para determinar los archivos modificados. Para obtener más detalles sobre una DistCp, consulte la Guía de DistCp de Hadoop versión 2.
COPIA DE PERMISOS
De manera predeterminada, el propietario, el grupo y los permisos de los archivos de destino se restablecen al valor predeterminado para los archivos nuevos creados por el usuario que inicia la DistCp. Se pierden todos los propietarios, grupos y permisos definidos para el archivo fuente. Para conservar esta información de los archivos fuente, use la opción -p. Debido a que la opción -p debe ejecutar operaciones chown/chgrp, el usuario que inicia la DistCp debe ser un superusuario en el sistema objetivo. El usuario raíz en el clúster PowerScale funciona para estos fines. Por ejemplo: [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
USO DE INSTANTÁNEAS PARA LA FUENTE DE RESPALDO
El respaldo de grandes conjuntos de datos puede tardar mucho tiempo. Es posible que los archivos que existen al comienzo del proceso de DistCp cuando se escanea la estructura de directorios ya no existan cuando se copie ese archivo. Este cambio en los archivos produce errores. Además, es posible que una aplicación solicite un respaldo coherente de un solo punto en el tiempo para poder utilizarla. A fin de abordar estos problemas, se recomienda crear una instantánea de HDFS de su fuente para asegurarse de que el conjunto de datos no cambie durante el proceso de respaldo. Esto no está relacionado con la función SnapshotIQ del clúster PowerScale objetivo.
A fin de utilizar instantáneas de HDFS, primero debe permitir instantáneas para un directorio específico:[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
Inmediatamente antes de un respaldo con DistCp, cree la instantánea de HDFS:
[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnap
El nombre de esta instantánea es backupsnap. Puede acceder a él en la ruta de HDFS /mydata/.snapshot/backupsnap. Los cambios realizados en los archivos HDFS después de esta instantánea no se reflejan en el respaldo posterior. Puede respaldar la instantánea en PowerScale usando el siguiente comando:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata
Cuando el comando de respaldo termine de ejecutarse, puede eliminar la instantánea. Al hacerlo, se libera el espacio utilizado para contener versiones anteriores de archivos que se modificaron desde la creación de la instantánea:
[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap
USO DE INSTANTÁNEAS DE POWERSCALE PARA SU OBJETIVO DE RESPALDO
Independientemente del uso de instantáneas para la fuente de respaldo, es posible que desee conservar varias instantáneas de su directorio objetivo de respaldo para restaurar las versiones anteriores de los archivos.
Para crear instantáneas en PowerScale, debe tener una licencia de SnapshotIQ. Puede crear instantáneas mediante la interfaz de administración web o la CLI. Para crear una única instantánea de PowerScale manualmente con la CLI, acceda mediante el protocolo SSH a cualquier nodo de PowerScale y ejecute lo siguiente: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
Puede agregar este comando al proceso de respaldo que se describe en la sección “Programación de respaldos” a continuación.
Si desea obtener más detalles sobre las instantáneas de PowerScale OneFS, consulte la Guía de administración de la CLI de PowerScale OneFS para su versión de OneFS:
Centros de información de PowerScale OneFSREPLICACIÓN DE SYNCIQ PARA VARIOS CLÚSTERES DE POWERSCALE
Una vez que se completa el respaldo de DistCp en el clúster PowerScale, puede usar OneFS SyncIQ para replicar instantáneas a través de una WAN a otros clústeres PowerScale. Las instantáneas replicadas pueden proporcionar un componente versátil y eficiente a su estrategia de recuperación ante desastres.
Figura 2: Replicación de SynIQ para varios clústeres Isilon
MANEJO DE ARCHIVOS ELIMINADOS
De manera predeterminada, los archivos eliminados del clúster Hadoop de origen no se eliminan del clúster Hadoop objetivo Si necesita este comportamiento, agregue el argumento -delete al comando de DistCp. Cuando se utiliza este comando, se recomienda utilizar instantáneas en el objetivo de respaldo para permitir la recuperación de archivos eliminados.
PROGRAMACIÓN DE RESPALDOS
Puede automatizar y programar los pasos para respaldar un clúster Hadoop mediante diversos métodos. A menudo, se utiliza Apache Oozie para automatizar las tareas de Hadoop y soporta DistCp de forma directa. CRON también se puede utilizar para ejecutar un script de shell. Para automatizar la ejecución de comandos en una sesión de SSH, habilite SSH sin contraseña. El protocolo SSH sin contraseña permite que un usuario CRON se conecte al cliente Hadoop y al clúster PowerScale (si utiliza SnapshotIQ).
Se puede acceder a los archivos de objetivo de respaldo en PowerScale desde las aplicaciones de Hadoop de la misma manera que a los archivos fuente, debido al soporte de PowerScale con HDFS. Puede usar los datos de respaldo directamente, sin tener que restaurarlos primero al entorno Hadoop fuente original. Esta funcionalidad ahorra tiempo de análisis. Por ejemplo, si ejecuta un comando MapReduce como este:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC
Puede ejecutar el trabajo MapReduce en el conjunto de datos de respaldo en PowerScale mediante el siguiente comando:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC
Para especificar una ruta de Hadoop calificada en lugar de usar el parámetro fs.defaultFS, consulte con el proveedor de aplicaciones para obtener más detalles. Además, es probable que un clúster PowerScale diseñado para fines de respaldo y archivado, en lugar de un uso para fines de alto rendimiento, no proporcione el mismo rendimiento que su entorno Hadoop principal. Se recomienda realizar pruebas o consultar con Dell PowerScale para obtener un dimensionamiento adecuado.