La Referencia de los comandos de la CLI de EMRFS - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

La Referencia de los comandos de la CLI de EMRFS

La CLI de EMRFS se instala de forma predeterminada en todos los nodos principales del clúster creados con la versión 3.2.1 o posterior de Amazon EMR. Puede utilizar la CLI de EMRFS para administrar los metadatos de la vista consistente.

nota

El comando emrfs solo se admite con la emulación de terminal VT100. Sin embargo, podría funcionar con otros modos de emulador del terminal.

comando de nivel superior emrfs

El comando de nivel superior emrfs admite la siguiente estructura.

emrfs [describe-metadata | set-metadata-capacity | delete-metadata | create-metadata | \ list-metadata-stores | diff | delete | sync | import ] [options] [arguments]

Especifique [opciones], con o sin [argumentos] tal y como se describe en la siguiente tabla. Para [opciones] específicas de subcomandos (describe-metadata, set-metadata-capacity, etc.), consulte cada subcomando a continuación.

[Opciones] para emrfs
Opción Descripción Obligatorio

-a AWS_ACCESS_KEY_ID | --access-key AWS_ACCESS_KEY_ID

La clave de AWS acceso que utiliza para escribir objetos en Amazon S3 y para crear o acceder a un almacén de metadatos en DynamoDB. De forma predeterminada, AWS_ACCESS_KEY_ID se establece en la clave de acceso que se utilizó para crear el clúster.

No

-s AWS_SECRET_ACCESS_KEY | --secret-key AWS_SECRET_ACCESS_KEY

La clave AWS secreta asociada a la clave de acceso que utiliza para escribir objetos en Amazon S3 y para crear o acceder a un almacén de metadatos en DynamoDB. De forma predeterminada, AWS_SECRET_ACCESS_KEY se define en la clave secreta asociada a la clave de acceso que se utilizó para crear el clúster.

No

-v | --verbose

Hace que la salida sea detallada.

No

-h | --help

Muestra el mensaje de ayuda para el comando emrfs con una declaración de uso.

No

subcomando emrfs describe-metadata

[Opciones] para emrfs describe-metadata
Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

ejemplo de emrfs describe-metadata

En el siguiente ejemplo se describe la tabla de metadatos predeterminados.

$ emrfs describe-metadata EmrFSMetadata read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 12

subcomando emrfs set-metadata-capacity

[Opciones] para emrfs set-metadata-capacity
Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

-r READ_CAPACITY | --read-capacity READ_CAPACITY

La capacidad de rendimiento de lectura solicitada para la tabla de metadatos. Si no se facilita el argumento READ_CAPACITY, el valor predeterminado es 400.

No

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

La capacidad de rendimiento de escritura solicitada para la tabla de metadatos. Si no se facilita el argumento WRITE_CAPACITY, el valor predeterminado es 100.

No

ejemplo de emrfs set-metadata-capacity

El siguiente ejemplo establece la capacidad de rendimiento de lectura en 600 y la capacidad de escritura en 150 para una tabla de metadatos denominada EmrMetadataAlt.

$ emrfs set-metadata-capacity --metadata-name EmrMetadataAlt --read-capacity 600 --write-capacity 150 read-capacity: 400 write-capacity: 100 status: UPDATING approximate-item-count (6 hour delay): 0

subcomando emrfs delete-metadata

[Opciones] para emrfs delete-metadata
Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

ejemplo de emrfs delete-metadata

En el siguiente ejemplo se elimina la tabla de metadatos predeterminados.

$ emrfs delete-metadata

subcomando emrfs create-metadata

[Opciones] para emrfs create-metadata
Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

-r READ_CAPACITY | --read-capacity READ_CAPACITY

La capacidad de rendimiento de lectura solicitada para la tabla de metadatos. Si no se facilita el argumento READ_CAPACITY, el valor predeterminado es 400.

No

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

La capacidad de rendimiento de escritura solicitada para la tabla de metadatos. Si no se facilita el argumento WRITE_CAPACITY, el valor predeterminado es 100.

No

ejemplo de emrfs create-metadata

El siguiente ejemplo crea una tabla de metadatos denominada EmrFSMetadataAlt.

$ emrfs create-metadata -m EmrFSMetadataAlt Creating metadata: EmrFSMetadataAlt EmrFSMetadataAlt read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 0

subcomando emrfs list-metadata-stores

El subcomando emrfs list-metadata-stores no tiene opciones.

ejemplo Ejemplo ist-metadata-stores L

El siguiente ejemplo muestra las tablas de metadatos.

$ emrfs list-metadata-stores EmrFSMetadata

subcomando emrfs diff

[Opciones] para emrfs diff
Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

s3://s3Path

La ruta del bucket de Amazon S3 que se debe comparar con la tabla de metadatos. Los buckets se sincronizan de forma recursiva.

ejemplo de emrfs diff

En el siguiente ejemplo se compara la tabla de metadatos predeterminados con un bucket de Amazon S3.

$ emrfs diff s3://elasticmapreduce/samples/cloudfront BOTH | MANIFEST ONLY | S3 ONLY DIR elasticmapreduce/samples/cloudfront DIR elasticmapreduce/samples/cloudfront/code/ DIR elasticmapreduce/samples/cloudfront/input/ DIR elasticmapreduce/samples/cloudfront/logprocessor.jar DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-14.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-15.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-16.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-17.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-18.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-19.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-20.WxYz1234 DIR elasticmapreduce/samples/cloudfront/code/cloudfront-loganalyzer.tgz

subcomando emrfs delete

[Opciones] para emrfs delete

Opción

Descripción

Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

s3://s3Path

La ruta al bucket de Amazon S3 que está siguiendo para una vista coherente. Los buckets se sincronizan de forma recursiva.

-t TIME | --time TIME

La fecha de vencimiento (interpretada con el argumento de unidad de tiempo). Todas las entradas de metadatos más antiguas que el argumento TIME se eliminan para el bucket especificado.

-u UNIT | --time-unit UNIT

La medida utilizada para interpretar el argumento de tiempo (nanosegundos, microsegundos, milisegundos, segundos, minutos, horas o días). Si no se especifica ningún argumento, el valor predeterminado es days.

--read-consumption READ_CONSUMPTION

La cantidad solicitada de rendimiento de lectura disponible utilizada para la operación delete. Si no se especifica el argumento READ_CONSUMPTION, el valor predeterminado es 400.

No

--write-consumption WRITE_CONSUMPTION

La cantidad solicitada de rendimiento de escritura disponible utilizada para la operación delete. Si no se especifica el argumento WRITE_CONSUMPTION, el valor predeterminado es 100.

No

ejemplo de emrfs delete

El siguiente ejemplo elimina todos los objetos en un bucket de Amazon S3 desde los metadatos de seguimiento para una vista consistente.

$ emrfs delete s3://elasticmapreduce/samples/cloudfront entries deleted: 11

subcomando emrfs import

[Opciones] para emrfs import
Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

s3://s3Path

La ruta al bucket de Amazon S3 que está siguiendo para una vista coherente. Los buckets se sincronizan de forma recursiva.

--read-consumption READ_CONSUMPTION

La cantidad solicitada de rendimiento de lectura disponible utilizada para la operación delete. Si no se especifica el argumento READ_CONSUMPTION, el valor predeterminado es 400.

No

--write-consumption WRITE_CONSUMPTION

La cantidad solicitada de rendimiento de escritura disponible utilizada para la operación delete. Si no se especifica el argumento WRITE_CONSUMPTION, el valor predeterminado es 100.

No

ejemplo de emrfs import

El siguiente ejemplo importa todos los objetos en un bucket de Amazon S3 con los metadatos de seguimiento para una vista consistente. Todas las claves desconocidas se omiten.

$ emrfs import s3://elasticmapreduce/samples/cloudfront

subcomando emrfs sync

[Opciones] para emrfs sync
Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla de metadatos de DynamoDB. Si no se facilita el argumento METADATA_NAME, el valor predeterminado es EmrFSMetadata.

No

s3://s3Path

La ruta al bucket de Amazon S3 que está siguiendo para una vista coherente. Los buckets se sincronizan de forma recursiva.

--read-consumption READ_CONSUMPTION

La cantidad solicitada de rendimiento de lectura disponible utilizada para la operación delete. Si no se especifica el argumento READ_CONSUMPTION, el valor predeterminado es 400.

No

--write-consumption WRITE_CONSUMPTION

La cantidad solicitada de rendimiento de escritura disponible utilizada para la operación delete. Si no se especifica el argumento WRITE_CONSUMPTION, el valor predeterminado es 100.

No

ejemplo de comando emrfs sync

El siguiente ejemplo importa todos los objetos en un bucket de Amazon S3 con los metadatos de seguimiento para una vista consistente. Todas las claves desconocidas se eliminan.

$ emrfs sync s3://elasticmapreduce/samples/cloudfront Synching samples/cloudfront 0 added | 0 updated | 0 removed | 0 unchanged Synching samples/cloudfront/code/ 1 added | 0 updated | 0 removed | 0 unchanged Synching samples/cloudfront/ 2 added | 0 updated | 0 removed | 0 unchanged Synching samples/cloudfront/input/ 9 added | 0 updated | 0 removed | 0 unchanged Done synching s3://elasticmapreduce/samples/cloudfront 9 added | 0 updated | 1 removed | 0 unchanged creating 3 folder key(s) folders written: 3

subcomando emrfs read-sqs

[Opciones] para emrfs read-sqs
Opción Descripción Obligatorio

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME es el nombre de la cola de Amazon SQS configurada en emrfs-site.xml. El valor predeterminado es EMRFS-Inconsistency-<jobFlowId>.

-o OUTPUT_FILE | --output-file OUTPUT_FILE

OUTPUT_FILE es la ruta al archivo de salida en el sistema de archivos local del nodo principal. Los mensajes leídos desde la cola se escriben en este archivo.

subcomando emrfs delete-sqs

[Opciones] para emrfs delete-sqs
Opción Descripción Obligatorio

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME es el nombre de la cola de Amazon SQS configurada en emrfs-site.xml. El valor predeterminado es EMRFS-Inconsistency-<jobFlowId>.

Envío de comandos de CLI EMRFS CLI como pasos

El siguiente ejemplo muestra cómo utilizar la emrfs utilidad en el nodo principal aprovechando la API AWS CLI or y la command-runner.jar para ejecutar el emrfs comando como un paso. En el ejemplo, se utiliza AWS SDK for Python (Boto3) para añadir un paso a un clúster que añade objetos de un bucket de Amazon S3 a la tabla de metadatos EMRFS predeterminada.

import boto3 from botocore.exceptions import ClientError def add_emrfs_step(command, bucket_url, cluster_id, emr_client): """ Add an EMRFS command as a job flow step to an existing cluster. :param command: The EMRFS command to run. :param bucket_url: The URL of a bucket that contains tracking metadata. :param cluster_id: The ID of the cluster to update. :param emr_client: The Boto3 Amazon EMR client object. :return: The ID of the added job flow step. Status can be tracked by calling the emr_client.describe_step() function. """ job_flow_step = { "Name": "Example EMRFS Command Step", "ActionOnFailure": "CONTINUE", "HadoopJarStep": { "Jar": "command-runner.jar", "Args": ["/usr/bin/emrfs", command, bucket_url], }, } try: response = emr_client.add_job_flow_steps( JobFlowId=cluster_id, Steps=[job_flow_step] ) step_id = response["StepIds"][0] print(f"Added step {step_id} to cluster {cluster_id}.") except ClientError: print(f"Couldn't add a step to cluster {cluster_id}.") raise else: return step_id def usage_demo(): emr_client = boto3.client("emr") # Assumes the first waiting cluster has EMRFS enabled and has created metadata # with the default name of 'EmrFSMetadata'. cluster = emr_client.list_clusters(ClusterStates=["WAITING"])["Clusters"][0] add_emrfs_step( "sync", "s3://elasticmapreduce/samples/cloudfront", cluster["Id"], emr_client ) if __name__ == "__main__": usage_demo()

Puede utilizar el valor devuelto step_id para comprobar los registros para el resultado de la operación.