MapR FS - MapR FS
| Desarrollador (es) | MapR |
|---|---|
| Nombre completo | MapR FS |
| Introducido | 2011 con Linux |
| Estructuras | |
| Contenido del directorio | Árbol B |
| Asignación de archivos | Árbol B de varios niveles |
| Limites | |
| Max. tamaño del volumen | ilimitado |
| Max. tamaño del archivo | 16 EiB |
| Max. Número de archivos | ilimitado |
| Caracteristicas | |
| Permisos del sistema de archivos | Unix estándar, expresiones de control de acceso |
| Compresión transparente | si |
| Cifrado transparente | si |
| Otro | |
| Apoyados sistemas operativos | Linux |
El sistema de archivos MapR ( MapR FS ) es un sistema de archivos agrupado que admite usos tanto a gran escala como de alto rendimiento. MapR FS admite una variedad de interfaces, incluido el acceso convencional a archivos de lectura / escritura a través de NFS y una interfaz FUSE, así como a través de la interfaz HDFS utilizada por muchos sistemas como Apache Hadoop y Apache Spark . Además del acceso orientado a archivos, MapR FS admite el acceso a tablas y flujos de mensajes mediante las API de Apache HBase y Apache Kafka , así como a través de una interfaz de base de datos de documentos.
Lanzado por primera vez en 2010, MapR FS ahora se describe normalmente como la Plataforma de datos convergentes MapR debido a la adición de interfaces tabulares y de mensajería. Sin embargo, se utiliza la misma tecnología central para implementar todas estas formas de almacenamiento de datos persistentes y, en última instancia, todas las interfaces son compatibles con los mismos procesos del servidor. Para distinguir las diferentes capacidades de la plataforma de datos en general, el término MapR FS se usa más específicamente para referirse a las interfaces orientadas a archivos, MapR DB o MapR JSON DB se usa para referirse a las interfaces tabulares y MapR Streams se usa para describir el capacidades de transmisión de mensajes.
MapR FS es un sistema de archivos de clúster en el sentido de que proporciona acceso uniforme desde / hacia archivos y otros objetos, como tablas, utilizando un espacio de nombres universal accesible desde cualquier cliente del sistema. El control de acceso también se proporciona para archivos, tablas y flujos utilizando expresiones de control de acceso , que son una extensión de la lista de control de acceso más común (y limitada) para permitir que los permisos se compongan no solo de listas de usuarios o grupos permitidos, sino también de permitir combinaciones booleanas de ID de usuario y grupos.
Historia
MapR FS fue desarrollado a partir de 2009 por MapR Technologies para ampliar las capacidades de Apache Hadoop proporcionando una plataforma más estable y de rendimiento. El diseño de MapR FS está influenciado por varios otros sistemas, como Andrew File System (AFS). El concepto de volúmenes en AFS tiene una fuerte similitud desde el punto de vista de los usuarios, aunque la implementación en MapR FS es completamente diferente. Una diferencia importante entre AFS y MapR FS es que este último utiliza un modelo de consistencia fuerte, mientras que AFS proporciona solo una consistencia débil.
Para cumplir con los objetivos originales de admitir programas de Hadoop, MapR FS admite la API de HDFS al traducir las llamadas de función de HDFS a una API interna basada en un mecanismo de llamada a procedimiento remoto (RPC) personalizado. El modelo normal de escritura única de HDFS se reemplaza en MapR FS por un sistema de archivos completamente mutable incluso cuando se usa la API de HDFS. La capacidad de admitir la mutación de archivos permite la implementación de un servidor NFS que traduce las operaciones NFS en llamadas internas MapR RPC. Se utilizan mecanismos similares para permitir una interfaz del sistema de archivos en el espacio de usuario (FUSE) y una emulación aproximada de la API de Apache HBase .
Arquitectura
Los archivos en MapR FS se implementan internamente dividiendo el contenido del archivo en fragmentos , normalmente cada uno de 256 MB de tamaño, aunque el tamaño es específico para cada archivo. Cada fragmento se escribe en contenedores que son el elemento de replicación en el clúster. Los contenedores se replican y la replicación se realiza de forma lineal en la que cada réplica reenvía las operaciones de escritura a la siguiente réplica en línea o en forma de estrella en la que la réplica maestra reenvía las operaciones de escritura a todas las demás réplicas al mismo tiempo. Las escrituras son reconocidas por la réplica maestra cuando se completan todas las escrituras en todas las réplicas. Internamente, los contenedores implementan árboles B que se utilizan en múltiples niveles, como para asignar el desplazamiento del archivo a un fragmento dentro de un archivo o para asignar el desplazamiento del archivo al bloque correcto de 8kB dentro de un fragmento.
Estos árboles B también se utilizan para implementar directorios. Se usa un hash largo de cada nombre de archivo o directorio en el directorio para encontrar el archivo secundario o la tabla de directorio.
Un volumen es una estructura de datos especial similar a un directorio en muchos aspectos, excepto que permite operaciones de administración y control de acceso adicionales. Una capacidad notable de los volúmenes es que los nodos en los que puede residir un volumen dentro de un clúster se pueden restringir para controlar el rendimiento, particularmente en sistemas de múltiples inquilinos fuertemente controvertidos que ejecutan una amplia variedad de cargas de trabajo.
MapR FS utiliza tecnología patentada para implementar transacciones en contenedores y lograr una recuperación de fallas consistente.
Otras características del sistema de archivos incluyen
- Metadatos de clúster distribuidos, incluida la ubicación de todos los contenedores y su disposición en cadenas de replicación.
- Metadatos distribuidos, incluido el árbol de directorios. Todos los directorios están completamente replicados y ningún nodo contiene todos los metadatos del clúster.
- Uso eficiente de árboles B para lograr un alto rendimiento incluso con directorios muy grandes.
- Tolerancia de partición. Un clúster se puede particionar sin pérdida de coherencia, aunque la disponibilidad puede verse comprometida. La replicación de coherencia restringida en varios clústeres también se admite mediante espejos de volumen y replicación casi en tiempo real de tablas y flujos.
- Actualización consistente de múltiples subprocesos. Muchos subprocesos de control pueden actualizar o leer archivos simultáneamente sin necesidad de estructuras de bloqueo globales.
- Actualizaciones continuas y mantenimiento del sistema de archivos en línea. Casi todo el mantenimiento, incluidas las principales actualizaciones de versiones, se puede realizar mientras el clúster sigue funcionando casi a toda velocidad.
Ver también
- GFS2
- Gluster
- Sistema de archivos de Google
- Lista de sistemas de archivos
- Lustre (sistema de archivos)
- MooseFS
- OCFS2
- QFS
- RozoFS
- Sistema de archivos de disco compartido
- ZFS