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à.
Metadati della visualizzazione coerente EMRFS
La visualizzazione coerente EMRFS verifica la consistenza utilizzando una tabella DynamoDB per monitorare gli oggetti in Amazon S3 che sono stati sincronizzati o creati da EMRFS. I metadati sono utilizzati per monitorare tutte le operazioni (lettura, scrittura, aggiornamento e copia) e alcun contenuto effettivo è memorizzato negli stessi. Questi metadati sono utilizzati per confermare che gli oggetti o i metadati ricevuti da Amazon S3 corrispondono a quanto previsto. Tale conferma consente a EMRFS di verificare la consistenza e read-after-write la consistenza a livello di elenco dei nuovi oggetti che scrive su Amazon S3 o degli oggetti che sincronizza. Più cluster possono condividere gli stessi metadati.
Come aggiungere voci ai metadati
Puoi utilizzare i sottocomandi sync
o import
per aggiungere voci ai metadati. sync
riflette lo stato degli oggetti Amazon S3 in un percorso, mentre import
viene utilizzato esclusivamente per aggiungere nuove voci ai metadati. Per ulteriori informazioni, consulta Riferimento ai comandi CLI di EMRFS.
Come verificare le differenze tra metadati e oggetti in Amazon S3
Per verificare le differenze tra i metadati e Amazon S3, utilizza il sottocomando diff
della CLI di EMRFS. Per ulteriori informazioni, consulta Riferimento ai comandi CLI di EMRFS.
Come determinare se le operazioni di metadati sono sottoposte a throttling
EMRFS imposta i limiti di capacità di velocità effettiva di default sui metadati per le operazioni di lettura e scrittura rispettivamente su 500 e 100 unità. Con un gran numero di oggetti o bucket, le operazioni possono superare questa capacità e quindi essere sottoposte a limitazione da DynamoDB. Ad esempio, un'applicazione può portare EMRFS a generare un'eccezione ProvisionedThroughputExceededException
se si sta eseguendo un'operazione che supera questi limiti di capacità. Con la limitazione, la CLI di EMRFS esegue un nuovo tentativo di scrittura sulla tabella DynamoDB utilizzando il backoff esponenziale fino al termine dell'operazione o fino a quando non viene raggiunto il numero massimo di tentativi di scrittura di oggetti da Amazon EMR su Amazon S3.
È possibile configurare i propri limiti di capacità di velocità effettiva. Tuttavia, DynamoDB dispone di limiti di partizione rigorosi di 3000 unità di capacità in lettura RCUs () e 1000 unità di capacità in scrittura WCUs () al secondo per operazioni di lettura e scrittura. Per evitare sync
errori causati dalla limitazione, consigliamo di limitare la velocità effettiva per le operazioni di lettura a meno di 3000 RCUs e le operazioni di scrittura a meno di 1000. WCUs Per istruzioni sull'impostazione dei limiti di capacità di velocità effettiva personalizzati, consulta Configurazione della visualizzazione coerente.
Puoi anche visualizzare i CloudWatch parametri di Amazon per i metadati EMRFS nella console di DynamoDB in cui è indicato il numero di richieste di lettura e scrittura sottoposte a limitazione. Se il numero di richieste sottoposte a throttling è diverso da zero, la tua applicazione può potenzialmente beneficiare di una capacità di throughput allocata superiore per le operazioni di lettura o scrittura. Puoi anche ottenere un miglioramento delle prestazioni se le tue operazioni si avvicinano alla capacità di throughput allocata massima per le letture o le scritture durante un periodo di tempo prolungato.
Caratteristiche di throughput per operazioni EMRFS significative
L'impostazione predefinita per le operazioni di lettura e scrittura è rispettivamente di 400 e 100 unità di capacità di throughput. Le caratteristiche prestazionali seguenti offrono un'idea di quale throughput è richiesto per determinate operazioni. Questi test sono stati eseguiti utilizzando un cluster m3.large
a nodo singolo. Tutte le operazioni erano a thread singolo. Le prestazioni differiscono notevolmente a seconda delle specifiche caratteristiche dell'applicazione e potrebbe essere necessario sperimentare per ottimizzare le operazioni del file system.
Operazione | Media read-per-second | Media write-per-second |
---|---|---|
create (oggetto) | 26.79 | 6.70 |
delete (oggetto) | 10.79 | 10.79 |
delete (directory contenente 1.000 oggetti) | 21.79 | 338.40 |
getFileStatus(oggetto) | 34.70 | 0 |
getFileStatus(elenco) | 19.96 | 0 |
listStatus (directory contenente 1 oggetto) | 43.31 | 0 |
listStatus (directory contenente 10 oggetti) | 44.34 | 0 |
listStatus (directory contenente 100 oggetti) | 84.44 | 0 |
listStatus (directory contenente 1.000 oggetti) | 308.81 | 0 |
listStatus (directory contenente 10.000 oggetti) | 416.05 | 0 |
listStatus (directory contenente 100.000 oggetti) | 823.56 | 0 |
listStatus (directory contenente 1 milione di oggetti) | 882.36 | 0 |
mkdir (continua per 120 secondi) | 24.18 | 4.03 |
mkdir | 12.59 | 0 |
rename (oggetto) | 19.53 | 4.88 |
rename (directory contenente 1.000 oggetti) | 23.22 | 339.34 |
Per inviare una fase che rimuove dati obsoleti dallo store di metadati
È possibile che gli utenti vogliano rimuovere specifiche voci nei metadati basati su DynamoDB. Ciò può contribuire a ridurre i costi di storage associati alla tabella. Gli utenti hanno la possibilità di rimuovere manualmente o a livello di codice determinate voci utilizzando il sottocomando delete
della CLI di EMRFS. Tuttavia, se elimini delle voci dai metadati, EMRFS non esegue più alcuna verifica di consistenza.
La rimozione a livello di codice dopo il completamento di un processo può essere eseguita inviando una fase finale al cluster, il quale esegue un comando sulla CLI di EMRFS. Ad esempio, digitare il comando seguente per inviare una fase al cluster allo scopo di eliminare tutte le voci di più di due giorni.
aws emr add-steps --cluster-id
j-2AL4XXXXXX5T9
--steps Name="emrfsCLI",Jar="command-runner.jar",Args=["emrfs","delete","--time","2","--time-unit","days"] { "StepIds": [ "s-B12345678902
" ] }
Utilizza il StepId valore restituito per verificare il risultato dell'operazione nei log.