Uso de la utilidad de línea de comandos odcp para copiar datos
Utilice la utilidad de línea de comandos odcp
para gestionar los datos de trabajos de copia entre HDFS en el cluster y los proveedores de almacenamiento remoto.
La CLI
odcp
solo se puede utilizar en clusters que utilicen Cloudera Distribution con Hadoop.odcp
utiliza Spark para proporcionar una transferencia paralela de uno o más archivos. Divide el archivo de entrada en fragmentos, que a continuación se transfieren en paralelo al destino. Por defecto, los fragmentos transferidos se fusionan a continuación en un archivo de salida.
odcp
soporta la copia de archivos cuando se utiliza lo siguiente:-
Apache Hadoop Distributed File Service (HDFS)
-
Apache WebHDFS and Secure WebHDFS (SWebHDFS)
-
Amazon Simple Storage Service (S3)
-
Oracle Cloud Infrastructure Object Storage
-
Protocolo de transferencia de hipertexto (HTTP) y protocolo seguro de transferencia de hipertexto (HTTPS): se utiliza solo para orígenes.
Antes de empezar
En los temas siguientes se indica cómo utilizar las opciones del comando odcp
para copiar datos entre HDFS en el cluster y los proveedores de almacenamiento externo.
-
Acceso a todos los servicios de almacenamiento en ejecución.
-
Todas las credenciales necesarias establecidas, por ejemplo, las instancias de Oracle Cloud Infrastructure Object Storage.
Consulte Referencia de odcp para ver la sintaxis, los parámetros y las opciones de odcp
.
Uso de bda-oss-admin con odcp
Utilice los comandos bda-oss-admin
a fin de configurar el cluster para su uso con proveedores de almacenamiento. Esto facilita y agiliza el uso de odcp
con el proveedor de almacenamiento.
Cualquier usuario con privilegios de acceso al clúster puede ejecutar odcp
.
Para copiar datos entre HDFS y un proveedor de almacenamiento, por ejemplo, Oracle Cloud Infrastructure Object Storage, debe tener una cuenta con el almacén de datos y acceder al mismo.
Para copiar datos entre HDFS y un proveedor de almacenamiento:
Copia de datos en un cluster seguro
El uso de odcp
para copiar datos en un cluster activado para Kerberos necesita algunos pasos adicionales.
En Oracle Big Data Service, un cluster está activado para Kerberos cuando se crea con la opción Seguridad y alta disponibilidad (HA) seleccionada.
Si desea ejecutar un trabajo de larga duración o ejecutar odcp
desde un script de shell automatizado o desde un servicio de flujo de trabajo como Apache Oozie, debe transferir al comando odcp
un principal de Kerberos y la ruta de acceso completa al archivo keytab
del principal, como se describe a continuación:
odcp
en la consola, no tiene que generar un archivo keytab
ni especificar el principal. Solo debe tener un token de Kerberos activo (creado con el comando kinit
).
Reintento de un trabajo de copia fallido
Si falla un trabajo de copia, puede volver a intentarlo. Al reintentar el trabajo, el origen y el destino se sincronizan automáticamente. Por lo tanto, odcp no transfiere correctamente las partes del archivo transferidas del origen al destino.
Utilice lo siguiente:
odcp --retry <source> <target>
Depuración de odcp
Debe configurar el cluster a fin de activar la depuración para odcp.
Configuración de un cluster para activar la depuración
Recopilación de ratios de transferencia
Puede recopilar los ratios de transferencia cuando la depuración está activada.
Las tasas de transferencia se notifican después de cada:
-
Operación de lectura de fragmentos
-
Operación de escritura o carga de fragmentos
El rendimiento de resumen se notifica cuando termina una transferencia de fragmentos. El rendimiento de resumen incluye todo lo siguiente:
-
Operaciones de lectura
-
Operaciones de escritura o carga
-
Operaciones de marco de Spark (distribución de tareas, gestión de tareas, etc.)
Ejemplo de salida:
./get-transfer-rates.sh application_1476272395108_0054 2>/dev/null
Action,Speed [MBps],Start time,End time,Duration [s],Size [B]
Download from OSS,2.5855451864420473,2016-10-31 11:34:48,2016-10-31 11:38:06,198.024,536870912
Download from OSS,2.548912231791706,2016-10-31 11:34:47,2016-10-31 11:38:08,200.87,536870912
Download from OSS,2.53447780846872,2016-10-31 11:34:47,2016-10-31 11:38:09,202.014,536870912
Download from OSS,2.5130931169717226,2016-10-31 11:34:48,2016-10-31 11:38:11,203.733,536870912
Write to HDFS,208.04550995530275,2016-10-31 14:00:30,2016-10-31 14:00:33,2.46099999999999967435,536870912
Write to HDFS,271.76220806794055,2016-10-31 14:00:38,2016-10-31 14:00:40,1.88400000000000001398,536870912
Write to HDFS,277.5067750677507,2016-10-31 14:00:43,2016-10-31 14:00:45,1.84499999999999985045,536870912
Write to HDFS,218.0579216354344,2016-10-31 14:00:44,2016-10-31 14:00:46,2.34800000000000013207,536870912
Write to HDFS,195.56913674560735,2016-10-31 14:00:44,2016-10-31 14:00:47,2.61799999999999978370,536870912
Utilice el siguiente comando para recopilar los ratios de salida:
get-transfer-rates.sh application_id
Referencia de odcp
La utilidad de la línea de comandos odcp tiene el comando único odcp
con los parámetros y opciones que se describen a continuación.
Sintaxis
odcp [<options>] <source1> [<source2> ...] <destination>
Parámetros
Parámetro | Descripción |
---|---|
<source1> [<source2> ...] |
El origen puede ser cualquiera de los siguientes:
Si especifica varios orígenes, enumere uno después de otro:
Si dos o más archivos de origen tienen el mismo nombre, no se copia nada y Se soportan expresiones regulares mediante estos parámetros:
|
<destination> |
El destino puede ser cualquiera de los siguientes:
|
Opciones
Opción | Descripción |
---|---|
|
Tamaño de parte del archivo de destino en bytes.
El resto después de dividir |
|
Concatene los fragmentos de archivo (valor por defecto). |
|
Especifique el número de núcleos del ejecutor. El valor por defecto es |
|
Especifique el límite de memoria de ejecutores en gigabytes. El valor por defecto es |
|
Especifique las opciones de configuración adicionales. Por ejemplo: --extra-conf spark.kryoserializer.buffer.max=128m |
|
Especifique los archivos que se van a concatenar a un archivo |
|
Permite mostrar ayuda para este comando. |
|
Ruta de acceso completa al archivo keytab del principal de Kerberos. (Utilizar solo en un entorno de Spark activado para Kerberos). |
|
Principal de Kerberos. (Utilizar solo en un entorno de Spark activado para Kerberos). |
|
No sobrescriba un archivo existente. |
|
No copie archivos de forma recursiva. |
|
Especifique el número de ejecutores. El valor por defecto es |
|
Muestre el progreso de la transferencia de datos. |
|
Vuelva a intentarlo si la transferencia anterior ha fallado o se ha interrumpido. |
|
Tamaño de parte del archivo de destino en bytes.
El resto después de dividir |
|
Ruta de acceso a un directorio que contiene una instalación de Apache Spark. Si no se especifica nada, |
|
Filtra los orígenes haciendo coincidir el nombre de origen con una expresión regular.
|
--sync |
Sincronice |
|
Active el modo detallado para la depuración. |