El sistema de archivos MapR ( MapR FS ) es un sistema de archivos en clúster que admite usos de alto rendimiento y a gran escala. [ 1 ] MapR FS admite una variedad de interfaces, incluido el acceso convencional de lectura/escritura de archivos 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 . [ 2 ] [ 3 ] Además del acceso orientado a archivos, MapR FS admite el acceso a tablas y flujos de mensajes utilizando las API de Apache HBase y Apache Kafka , así como a través de una interfaz de base de datos de documentos.
Lanzada por primera vez en 2010, [ 4 ] MapR FS ahora se describe generalmente como la Plataforma de Datos Convergentes de 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 persistente de datos y todas las interfaces son, en última instancia, compatibles con los mismos procesos de servidor. Para distinguir las diferentes capacidades de la plataforma de datos en general, el término MapR FS se utiliza más específicamente para referirse a las interfaces orientadas a archivos, MapR DB o MapR JSON DB se utiliza para referirse a las interfaces tabulares y MapR Streams se utiliza para describir las capacidades de transmisión de mensajes.
MapR FS es un sistema de archivos en clúster que proporciona acceso uniforme desde archivos a otros objetos, como tablas, que funcionan como un espacio de nombres universal accesible desde cualquier cliente del sistema. También se proporciona control de acceso para archivos, tablas y flujos, que se utilizan como expresiones de control de acceso . Esto es una extensión de la lista de control de acceso más común (y limitada), que permite permisos a partir de listas compuestas de usuarios o grupos permitidos, pero en este caso, los valores booleanos permiten combinaciones de ID de usuario y grupos.
Historia
MapR FS fue desarrollado en 2009 por MapR Technologies para ampliar las capacidades de Apache Hadoop , proporcionando una plataforma más estable y con mejor rendimiento. El diseño de MapR FS está influenciado por otros sistemas, como Andrew File System (AFS). El concepto de volúmenes en AFS presenta ciertas similitudes desde la perspectiva del usuario, aunque la implementación en MapR FS es completamente diferente. Una diferencia fundamental entre AFS y MapR FS radica en que este último utiliza un modelo de consistencia fuerte, mientras que AFS solo ofrece consistencia débil.
Para cumplir con los objetivos originales de dar soporte a los programas Hadoop, MapR FS admite la API de HDFS traduciendo las llamadas a funciones de HDFS a una API interna basada en un mecanismo de llamada a procedimiento remoto (RPC) personalizado. El modelo habitual de escritura única de HDFS se reemplaza en MapR FS por un sistema de archivos totalmente mutable, incluso al usar 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 a llamadas RPC internas de MapR. Se utilizan mecanismos similares para habilitar una interfaz de sistema de archivos en espacio de usuario (FUSE) y una emulación aproximada de la API de Apache HBase .
Arquitectura
En MapR FS, los archivos se implementan internamente dividiendo su contenido en fragmentos , generalmente de 256 MB cada uno, 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 de forma lineal, donde cada réplica reenvía las operaciones de escritura a la siguiente réplica en la secuencia, o en forma de estrella , donde la réplica maestra reenvía las operaciones de escritura a todas las demás réplicas simultáneamente. La réplica maestra confirma las escrituras cuando todas las escrituras en todas las réplicas se completan. Internamente, los contenedores implementan árboles B, que se utilizan en varios niveles, como para asignar el desplazamiento del archivo al fragmento dentro del mismo o para asignar el desplazamiento del archivo al bloque correcto de 8 kB dentro del fragmento.
Estos árboles B también se utilizan para implementar directorios. Se utiliza un hash largo de cada nombre de archivo o directorio dentro del directorio para encontrar la tabla de archivos o directorios secundarios.
Un volumen es una estructura de datos especial similar a un directorio en muchos aspectos, con la diferencia de que permite operaciones adicionales de control de acceso y administración. Una capacidad destacada de los volúmenes es que se pueden restringir los nodos en los que reside un volumen dentro de un clúster para controlar el rendimiento, especialmente en sistemas multiusuario con alta congestión que ejecutan una amplia variedad de cargas de trabajo.
En MapR FS se utiliza tecnología propietaria para implementar transacciones en contenedores y lograr una recuperación ante fallos consistente.
Otras características del sistema de archivos incluyen: [ 5 ]
- Metadatos del clúster distribuido, incluyendo la ubicación de todos los contenedores y su disposición en cadenas de replicación.
- Metadatos distribuidos, incluyendo el árbol de directorios. Todos los directorios están completamente replicados y ningún nodo individual contiene todos los metadatos del clúster.
- Uso eficiente de árboles B para lograr un alto rendimiento incluso con directorios muy grandes.
- Tolerancia a particiones. Un clúster puede particionarse sin pérdida de consistencia, aunque la disponibilidad podría verse comprometida. También se admite la replicación de consistencia restringida entre varios clústeres mediante espejos de volumen y la replicación de tablas y flujos casi en tiempo real.
- Actualización multihilo consistente. Los archivos pueden ser actualizados o leídos por muchos hilos de control simultáneamente sin necesidad de estructuras de bloqueo globales.
- Actualizaciones progresivas y mantenimiento del sistema de archivos en línea. Casi todas las tareas de mantenimiento, incluidas las actualizaciones de versiones principales, se pueden realizar mientras el clúster sigue funcionando prácticamente a máxima velocidad.
Véase también
Referencias
- ↑ Brennan, Bob. "Flash Memory Summit" . YouTube . Samsung . Consultado el 21 de junio de 2016 .
- ↑ Dunning, Ted; Friedman, Ellen (enero de 2015). «Capítulo 3: Comprensión de la distribución MapR para Apache Hadoop». Hadoop en el mundo real (primera edición). Sebastopol, CA: O'Reilly Media, Inc. págs. 23-28 . ISBN 978-1-491-92395-5. Consultado el 21 de junio de 2016 .
- ↑ Pérez, Nicolás. "Cómo MapR mejora nuestra productividad y simplifica nuestro diseño" . Medium . Medium . Consultado el 21 de junio de 2016 .
- ↑ "Notas de la versión 1.0 de MapR" . Documentación de MapR . MapR . Consultado el 21 de junio de 2016 .
- ↑ Srivas, MC. "Sistema de archivos MapR" . Cumbre Hadoop 2011. Hortonworks . Consultado el 21 de junio de 2016 .
- Sistemas de archivos distribuidos compatibles con el kernel de Linux
- Sistemas de archivos distribuidos