EMRFSCLIRiferimento ai comandi - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

EMRFSCLIRiferimento ai comandi

EMRFSCLIViene installato per impostazione predefinita su tutti i nodi master del cluster creati utilizzando la EMR versione 3.2.1 o successiva di Amazon. Puoi utilizzare il EMRFS CLI per gestire i metadati per una visualizzazione coerente.

Nota

Il emrfs comando è supportato solo con l'emulazione del terminale VT1 00. Tuttavia, può funzionare anche con altre modalità emulatore di terminale.

Commando di livello superiore emrfs

Il comando di livello superiore emrfs supporta la struttura seguente.

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

Specifica [opzioni], con o senza [argomenti] come descritto nella tabella seguente. Per [opzioni] specifiche a sottocomandi (describe-metadata, set-metadata-capacity, ecc.), consulta ogni sottocomando elencato di seguito.

[Opzioni] per emrfs
Opzione Descrizione Richiesto

-a AWS_ACCESS_KEY_ID | --access-key AWS_ACCESS_KEY_ID

La chiave di AWS accesso che usi per scrivere oggetti su Amazon S3 e per creare o accedere a un archivio di metadati in DynamoDB. Per impostazione predefinita, AWS_ACCESS_KEY_ID è impostato sulla chiave di accesso utilizzata per creare il cluster.

No

-s AWS_SECRET_ACCESS_KEY | --secret-key AWS_SECRET_ACCESS_KEY

La chiave AWS segreta associata alla chiave di accesso utilizzata per scrivere oggetti su Amazon S3 e per creare o accedere a un archivio di metadati in DynamoDB. Per impostazione predefinita, AWS_SECRET_ACCESS_KEY è impostato sulla chiave segreta associata alla chiave di accesso utilizzata per creare il cluster.

No

-v | --verbose

Fornisce un output dettagliato.

No

-h | --help

Visualizza il messaggio di aiuto per il comando emrfs con un'istruzione di utilizzo.

No

Sottocomando emrfs describe-metadata

[Opzioni] per emrfs describe-metadata
Opzione Descrizione Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

Esempio di emrfs describe-metadata

L'esempio seguente descrive la tabella di metadati di default.

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

sottocomando emrfs set-metadata-capacity

[Opzioni] per emrfs set-metadata-capacity
Opzione Descrizione Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

-r READ_CAPACITY | --read-capacity READ_CAPACITY

La capacità di throughput di lettura necessaria per la tabella di metadati. Se il file READ_CAPACITY l'argomento non viene fornito, il valore predefinito è400.

No

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

La capacità di throughput di scrittura necessaria per la tabella di metadati. Se il file WRITE_CAPACITY l'argomento non viene fornito, il valore predefinito è100.

No

Esempio esempio emrfs set-metadata-capacity

L'esempio seguente imposta la capacità di throughput di lettura su 600 e la capacità di scrittura su 150 per una tabella di metadati denominata 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

Sottocomando emrfs delete-metadata

[Opzioni] per emrfs delete-metadata
Opzione Descrizione Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

Esempio di emrfs delete-metadata

L'esempio seguente elimina la tabella di metadati di default.

$ emrfs delete-metadata

Sottocomando emrfs create-metadata

[Opzioni] per emrfs create-metadata
Opzione Descrizione Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

-r READ_CAPACITY | --read-capacity READ_CAPACITY

La capacità di throughput di lettura necessaria per la tabella di metadati. Se il file READ_CAPACITY l'argomento non viene fornito, il valore predefinito è400.

No

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

La capacità di throughput di scrittura necessaria per la tabella di metadati. Se il file WRITE_CAPACITY l'argomento non viene fornito, il valore predefinito è100.

No

Esempio di emrfs create-metadata

L'esempio seguente crea una tabella di metadati denominata 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

sottocomando emrfs list-metadata-stores

Il sottocomando emrfs list-metadata-stores non ha [opzioni].

Esempio ist-metadata-stores Esempio L

L'esempio seguente elenca le tabelle di metadati.

$ emrfs list-metadata-stores EmrFSMetadata

Sottocomando emrfs diff

[Opzioni] per emrfs diff
Opzione Descrizione Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

s3://s3Path

Il percorso al bucket Amazon S3 da comparare alla tabella di metadati. Sincronizzazione ricorsiva dei bucket.

Esempio di emrfs diff

L'esempio seguente compara la tabella di metadati di default a un bucket 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

Sottocomando emrfs delete

[Opzioni] per emrfs delete

Opzione

Descrizione

Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

s3://s3Path

Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket.

-t TIME | --time TIME

La data di scadenza (interpretata utilizzando l'argomento dell'unità di tempo). Tutte le voci di metadati più vecchie di TIME l'argomento viene eliminato per il bucket specificato.

-u UNIT | --time-unit UNIT

La misura utilizzata per interpretare l'argomento di tempo (nanosecondi, microsecondi, millisecondi, secondi, minuti, ore o giorni). Se nessun argomento è specificato, il valore di default è days.

--read-consumption READ_CONSUMPTION

La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione delete. Se il file READ_CONSUMPTION l'argomento non è specificato, il valore predefinito è400.

No

--write-consumption WRITE_CONSUMPTION

La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione delete. Se il file WRITE_CONSUMPTION l'argomento non è specificato, il valore predefinito è100.

No

Esempio di emrfs delete

L'esempio seguente rimuove tutti gli oggetti in un bucket Amazon S3 dai metadati di monitoraggio per la visualizzazione coerente.

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

Sottocomando emrfs import

[Opzioni] per emrfs import
Opzione Descrizione Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

s3://s3Path

Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket.

--read-consumption READ_CONSUMPTION

La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione delete. Se il file READ_CONSUMPTION l'argomento non è specificato, il valore predefinito è400.

No

--write-consumption WRITE_CONSUMPTION

La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione delete. Se il file WRITE_CONSUMPTION l'argomento non è specificato, il valore predefinito è100.

No

Esempio di emrfs import

L'esempio seguente importa tutti gli oggetti in un bucket Amazon S3 con i metadati di monitoraggio per la visualizzazione coerente. Tutte le chiavi sconosciute vengono ignorate.

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

Sottocomando emrfs sync

[Opzioni] per emrfs sync
Opzione Descrizione Richiesto

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME è il nome della tabella di metadati DynamoDB. Se il file METADATA_NAME l'argomento non viene fornito, il valore predefinito è. EmrFSMetadata

No

s3://s3Path

Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket.

--read-consumption READ_CONSUMPTION

La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione delete. Se il file READ_CONSUMPTION l'argomento non è specificato, il valore predefinito è400.

No

--write-consumption WRITE_CONSUMPTION

La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione delete. Se il file WRITE_CONSUMPTION l'argomento non è specificato, il valore predefinito è100.

No

Esempio di comando emrfs sync

L'esempio seguente importa tutti gli oggetti in un bucket Amazon S3 con i metadati di monitoraggio per la visualizzazione coerente. Tutte le chiavi sconosciute vengono eliminate.

$ 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

Sottocomando emrfs read-sqs

[Opzioni] per emrfs read-sqs
Opzione Descrizione Richiesto

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME è il nome della SQS coda Amazon configurata inemrfs-site.xml. Il valore predefinito è EMRFS-Inconsistency-<jobFlowId>.

-o OUTPUT_FILE | --output-file OUTPUT_FILE

OUTPUT_FILE è il percorso del file di output sul file system locale del nodo master. I messaggi letti dalla coda sono scritti su questo file.

Sottocomando emrfs delete-sqs

[Opzioni] per emrfs delete-sqs
Opzione Descrizione Richiesto

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME è il nome della SQS coda Amazon configurata inemrfs-site.xml. Il valore predefinito è EMRFS-Inconsistency-<jobFlowId>.

Invio di EMRFS CLI comandi come passaggi

L'esempio seguente mostra come utilizzare l'emrfsutilità sul nodo master sfruttando i comandi AWS CLI or API e command-runner.jar to per eseguire il emrfs comando contemporaneamente. L'esempio utilizza AWS SDK for Python (Boto3) per aggiungere un passaggio a un cluster che aggiunge oggetti in un bucket Amazon S3 alla tabella di metadati predefinitaEMRFS.

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()

Puoi utilizzare il valore step_id restituito per verificare il risultato dell'operazione nei log.