MapR FS - MapR FS

Caratteristiche di MapR FS
Sviluppatore / i MapR
Nome e cognome MapR FS
Introdotto 2011 con Linux
Strutture
Contenuto della directory B-albero
Allocazione dei file B-tree multilivello
Limiti
Max. dimensione del volume illimitato
Max. dimensione del file 16 EiB
Max. numero di file illimitato
Caratteristiche
Autorizzazioni del file system Unix standard, espressioni di controllo di accesso
Compressione trasparente
Crittografia trasparente
Altro
Sistemi operativi supportati Linux

Il file MAPR sistema ( MAPR FS ) è un file system cluster che supporta sia molto larga scala e ad alte prestazioni usi. MapR FS supporta una varietà di interfacce tra cui l'accesso ai file di lettura / scrittura convenzionale tramite NFS e un'interfaccia FUSE, nonché tramite l'interfaccia HDFS utilizzata da molti sistemi come Apache Hadoop e Apache Spark . Oltre all'accesso orientato ai file, MapR FS supporta l'accesso a tabelle e flussi di messaggi utilizzando le API Apache HBase e Apache Kafka , nonché tramite un'interfaccia database di documenti.

Rilasciato per la prima volta nel 2010, MapR FS è ora generalmente descritto come MapR Converged Data Platform a causa dell'aggiunta di interfacce tabulari e di messaggistica. La stessa tecnologia di base, tuttavia, viene utilizzata per implementare tutte queste forme di memorizzazione persistente dei dati e tutte le interfacce sono in definitiva supportate dagli stessi processi server. Per distinguere le diverse capacità della piattaforma dati complessiva, il termine MapR FS viene utilizzato più specificamente per fare riferimento alle interfacce orientate ai file, MapR DB o MapR JSON DB viene utilizzato per fare riferimento alle interfacce tabulari e MapR Streams viene utilizzato per descrivere il capacità di streaming dei messaggi.

MapR FS è un file system cluster in quanto fornisce un accesso uniforme da / a file e altri oggetti come le tabelle utilizzando uno spazio dei nomi universale accessibile da qualsiasi client del sistema. Il controllo degli accessi è fornito anche per file, tabelle e flussi che utilizzano espressioni di controllo degli accessi , che sono un'estensione dell'elenco di controllo degli accessi più comune (e limitato) per consentire la composizione delle autorizzazioni non solo di elenchi di utenti o gruppi consentiti, ma consentire combinazioni booleane di ID utente e gruppi.

Storia

MapR FS è stato sviluppato a partire dal 2009 da MapR Technologies per estendere le capacità di Apache Hadoop fornendo una piattaforma più performante e stabile. Il design di MapR FS è influenzato da vari altri sistemi come l' Andrew File System (AFS). Il concetto di volumi in AFS ha alcune forti somiglianze dal punto di vista degli utenti, sebbene l'implementazione in MapR FS sia completamente diversa. Una delle principali differenze tra AFS e MapR FS è che quest'ultimo utilizza un modello di consistenza forte mentre AFS fornisce solo una consistenza debole.

Per soddisfare gli obiettivi originali del supporto dei programmi Hadoop, MapR FS supporta l'API HDFS traducendo le chiamate di funzione HDFS in un'API interna basata su un meccanismo RPC ( Remote Procedure Call ) personalizzato. Il normale modello write-once di HDFS viene sostituito in MapR FS da un file system completamente modificabile anche quando si utilizza l'API HDFS. La capacità di supportare la mutazione dei file consente l'implementazione di un server NFS che traduce le operazioni NFS in chiamate interne MapR RPC. Meccanismi simili vengono utilizzati per consentire un'interfaccia Filesystem in Userspace (FUSE) e un'emulazione approssimativa dell'API Apache HBase .

Architettura

I file in MapR FS vengono implementati internamente suddividendo il contenuto del file in blocchi , in genere ogni 256 MB di dimensione, sebbene la dimensione sia specifica per ogni file. Ogni blocco viene scritto nei contenitori che sono l'elemento di replica nel cluster. I contenitori vengono replicati e la replica viene eseguita in modo lineare in cui ogni replica inoltra le operazioni di scrittura alla replica successiva in linea o in modo a stella in cui la replica master inoltra le operazioni di scrittura a tutte le altre repliche contemporaneamente. Le scritture vengono riconosciute dalla replica master quando tutte le scritture su tutte le repliche sono state completate. Internamente, i contenitori implementano B-tree che vengono utilizzati a più livelli, ad esempio per mappare l'offset del file su un blocco all'interno di un file o per mappare l'offset del file al blocco corretto di 8 kB all'interno di un blocco.

Questi B-tree vengono utilizzati anche per implementare le directory. Un hash lungo di ogni nome di file o directory nella directory viene utilizzato per trovare il file figlio o la tabella di directory.

Un volume è una struttura di dati speciale simile a una directory in molti modi, tranne per il fatto che consente ulteriori operazioni di controllo e gestione dell'accesso. Una notevole capacità dei volumi è che i nodi su cui un volume può risiedere all'interno di un cluster possono essere limitati per controllare le prestazioni, in particolare nei sistemi multi-tenant fortemente contesi che eseguono un'ampia varietà di carichi di lavoro.

La tecnologia proprietaria viene utilizzata in MapR FS per implementare le transazioni nei contenitori e per ottenere un ripristino da arresto anomalo coerente.

Altre caratteristiche del filesystem includono

  • Metadati del cluster distribuiti, inclusa la posizione di tutti i contenitori e la loro disposizione in catene di replica.
  • Metadati distribuiti, incluso l'albero delle directory. Tutte le directory vengono replicate completamente e nessun singolo nodo contiene tutti i metadati per il cluster.
  • Uso efficiente degli alberi B per ottenere prestazioni elevate anche con directory molto grandi.
  • Tolleranza sulla partizione. Un cluster può essere partizionato senza perdita di coerenza, sebbene la disponibilità possa essere compromessa. Anche la replica di coerenza limitata su più cluster è supportata utilizzando i mirror dei volumi e la replica quasi in tempo reale di tabelle e flussi.
  • Coerente aggiornamento multi-thread. I file possono essere aggiornati o letti da moltissimi thread di controllo simultaneamente senza richiedere strutture di blocco globali.
  • Aggiornamenti in sequenza e manutenzione del file system in linea. Quasi tutta la manutenzione, inclusi gli aggiornamenti delle versioni principali, può essere eseguita mentre il cluster continua a funzionare quasi a piena velocità.

Guarda anche

Riferimenti

link esterno