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à.
Riferimento ai comandi CLI di EMRFS
Per impostazione predefinita, la CLI di EMRFS è installata su tutti i nodi master del cluster creati utilizzando Amazon EMR versione 3.2.1 o versioni successive. Puoi utilizzare la CLI di EMRFS per gestire i metadati per la 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.
Opzione | Descrizione | Richiesto |
---|---|---|
|
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, |
No |
|
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, |
No |
|
Fornisce un output dettagliato. |
No |
|
Visualizza il messaggio di aiuto per il comando |
No |
Sottocomando emrfs describe-metadata
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
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
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
No |
|
La capacità di throughput di lettura necessaria per la tabella di metadati. Se l' |
No |
|
La capacità di throughput di scrittura necessaria per la tabella di metadati. Se l' |
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
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
No |
Esempio di emrfs delete-metadata
L'esempio seguente elimina la tabella di metadati di default.
$ emrfs delete-metadata
Sottocomando emrfs create-metadata
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
No |
|
La capacità di throughput di lettura necessaria per la tabella di metadati. Se l' |
No |
|
La capacità di throughput di scrittura necessaria per la tabella di metadati. Se l' |
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 List-metadata-stores esempio
L'esempio seguente elenca le tabelle di metadati.
$ emrfs list-metadata-stores
EmrFSMetadata
Sottocomando emrfs diff
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
No |
|
Il percorso al bucket Amazon S3 da comparare alla tabella di metadati. Sincronizzazione ricorsiva dei bucket. |
Sì |
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
Opzione |
Descrizione |
Richiesto |
---|---|---|
|
|
No |
|
Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket. |
Sì |
-t |
La data di scadenza (interpretata utilizzando l'argomento dell'unità di tempo). Tutte le voci di metadati precedenti all' |
|
|
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 è |
|
|
La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione delete. Se l' |
No |
|
La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione delete. Se l' |
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
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
No |
|
Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket. |
Sì |
|
La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione delete. Se l' |
No |
|
La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione delete. Se l' |
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
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
No |
|
Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket. |
Sì |
|
La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione delete. Se l' |
No |
|
La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione delete. Se l' |
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
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
Sì |
|
|
Sì |
Sottocomando emrfs delete-sqs
Opzione | Descrizione | Richiesto |
---|---|---|
|
|
Sì |
Invio di comandi della CLI di EMRFS come fasi
L'esempio seguente mostra come utilizzare l'emrfs
utilità sul nodo master sfruttando l'API AWS CLI or e come command-runner.jar
eseguire il emrfs
comando in un unico passaggio. 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 EMRFS predefinita.
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.