Apache Hadoop ( / h ə ˈ d uː p / ) es una colección de utilidades de software de código abierto para computación distribuida , escalable y confiable . Proporciona un marco de software para el almacenamiento y procesamiento distribuido de big data utilizando el modelo de programación MapReduce . Hadoop fue diseñado originalmente para clústeres de computadoras construidos con hardware estándar , que sigue siendo su uso común. [ 3 ] Desde entonces, también se ha utilizado en clústeres de hardware de gama alta. [ 4 ] [ 5 ] Todos los módulos de Hadoop están diseñados bajo la premisa fundamental de que las fallas de hardware son frecuentes y deben ser manejadas automáticamente por el marco. [ 6 ]
Descripción general
El núcleo de Apache Hadoop consta de una parte de almacenamiento, conocida como Sistema de Archivos Distribuidos de Hadoop (HDFS), y una parte de procesamiento que utiliza el modelo de programación MapReduce. Hadoop divide los archivos en grandes bloques y los distribuye entre los nodos de un clúster. A continuación, transfiere el código empaquetado a los nodos para procesar los datos en paralelo. Este enfoque aprovecha la localidad de los datos [ 7 ] , donde los nodos manipulan los datos a los que tienen acceso. Esto permite procesar el conjunto de datos de forma más rápida y eficiente que en una arquitectura de supercomputadora más convencional que se basa en un sistema de archivos paralelo donde la computación y los datos se distribuyen a través de redes de alta velocidad [ 8 ] [ 9 ] .
El marco base de Apache Hadoop se compone de los siguientes módulos:
- Hadoop Common : contiene las bibliotecas y utilidades necesarias para otros módulos de Hadoop;
- Sistema de archivos distribuido de Hadoop (HDFS) : un sistema de archivos distribuido que almacena datos en máquinas estándar, proporcionando un ancho de banda agregado muy alto en todo el clúster;
- Hadoop YARN - (introducido en 2012) es una plataforma responsable de administrar los recursos informáticos en clústeres y utilizarlos para programar las aplicaciones de los usuarios; [ 10 ] [ 11 ]
- Hadoop MapReduce : una implementación del modelo de programación MapReduce para el procesamiento de datos a gran escala.
- Hadoop Ozone - (introducido en 2020) Un almacén de objetos para Hadoop
El término Hadoop se usa a menudo tanto para los módulos base como para los submódulos y también para el ecosistema , [ 12 ] o conjunto de paquetes de software adicionales que se pueden instalar sobre o junto con Hadoop, como Apache Pig , Apache Hive , Apache HBase , Apache Phoenix , Apache Spark , Apache ZooKeeper , Apache Impala , Apache Flume , Apache Sqoop , Apache Oozie y Apache Storm . [ 13 ]
Los componentes MapReduce y HDFS de Apache Hadoop se inspiraron en documentos de Google sobre MapReduce y Google File System . [ 14 ]
El propio framework Hadoop está escrito principalmente en el lenguaje de programación Java , con algo de código nativo en C y utilidades de línea de comandos escritas como scripts de shell . El lenguaje Perl se puede usar fácilmente con Hadoop Streaming para implementar las partes de mapeo y reducción del programa del usuario. [ 15 ]
Historia
Según sus cofundadores, Doug Cutting y Mike Cafarella , la idea de Hadoop se concibió en el documento de Google File System que se publicó en octubre de 2003. [ 16 ] [ 17 ] El concepto se amplió en el documento de Google "MapReduce: Procesamiento de datos simplificado en grandes clústeres". [ 18 ] El desarrollo comenzó en el proyecto Apache Nutch , pero se trasladó al nuevo subproyecto Hadoop en enero de 2006. [ 19 ] Doug Cutting, que trabajaba en Yahoo! en ese momento, lo nombró en honor al elefante de juguete de su hijo. [ 20 ] El código inicial que se factorizó a partir de Nutch consistía en aproximadamente 5000 líneas de código para HDFS y aproximadamente 6000 líneas de código para MapReduce.
En marzo de 2006, Owen O'Malley fue el primer colaborador en contribuir al proyecto Hadoop; [ 21 ] Hadoop 0.1.0 se lanzó en abril de 2006. [ 22 ] Continúa evolucionando gracias a las contribuciones que se realizan al proyecto. [ 23 ] El primer documento de diseño para el Sistema de Archivos Distribuidos de Hadoop fue escrito por Dhruba Borthakur en 2007. [ 24 ]
Arquitectura
Hadoop consta del paquete Hadoop Common , que proporciona abstracciones a nivel de sistema de archivos y sistema operativo, un motor MapReduce (ya sea MapReduce/MR1 o YARN/MR2) [ 32 ] y el Sistema de Archivos Distribuidos de Hadoop (HDFS). El paquete Hadoop Common contiene los archivos JAR (Java Archive) y los scripts necesarios para iniciar Hadoop.
Para una programación eficaz del trabajo, todo sistema de archivos compatible con Hadoop debe proporcionar información sobre la ubicación, es decir, el nombre del rack, específicamente el conmutador de red donde se encuentra un nodo de trabajo. Las aplicaciones de Hadoop pueden usar esta información para ejecutar código en el nodo donde se encuentran los datos y, en caso de no ser posible, en el mismo rack/conmutador para reducir el tráfico de la red troncal. HDFS utiliza este método al replicar datos para lograr redundancia de datos en múltiples racks. Este enfoque reduce el impacto de un corte de energía en un rack o una falla en el conmutador; si ocurre alguna de estas fallas de hardware, los datos permanecerán disponibles. [ 33 ]

Un clúster Hadoop pequeño incluye un único nodo maestro y varios nodos de trabajo. El nodo maestro consta de un Job Tracker, un Task Tracker, un NameNode y un DataNode. Un nodo esclavo o de trabajo actúa como DataNode y TaskTracker, aunque es posible tener nodos de trabajo dedicados exclusivamente a datos o exclusivamente a computación. Estos últimos se utilizan normalmente solo en aplicaciones no estándar. [ 34 ]
Hadoop requiere Java Runtime Environment (JRE) 1.6 o superior. Los scripts estándar de inicio y apagado requieren que Secure Shell (SSH) esté configurado entre los nodos del clúster. [ 35 ]
En un clúster de mayor tamaño, los nodos HDFS se gestionan mediante un servidor NameNode dedicado que aloja el índice del sistema de archivos, y un NameNode secundario que genera instantáneas de las estructuras de memoria del NameNode, evitando así la corrupción del sistema de archivos y la pérdida de datos. Del mismo modo, un servidor JobTracker independiente gestiona la programación de tareas entre los nodos. Cuando se utiliza Hadoop MapReduce con un sistema de archivos alternativo, la arquitectura NameNode, NameNode secundario y DataNode de HDFS se reemplaza por sus equivalentes específicos.
Sistemas de archivos
Sistema de archivos distribuidos Hadoop
El sistema de archivos distribuido de Hadoop (HDFS) es un sistema de archivos distribuido, escalable y portátil escrito en Java para el framework Hadoop. Una instancia de Hadoop se divide en HDFS y MapReduce. HDFS se utiliza para almacenar los datos y MapReduce para procesarlos. HDFS cuenta con cinco servicios:
- Nombre del nodo
- Nodo de nombre secundario
- Rastreador de empleos
- Nodo de datos
- Rastreador de tareas
Los tres primeros son servicios maestros/demonios/nodos y los dos últimos son servicios esclavos. Los servicios maestros pueden comunicarse entre sí, al igual que los servicios esclavos. El NameNode es un nodo maestro y el DataNode es su nodo esclavo correspondiente, y ambos pueden comunicarse entre sí.
Nodo maestro: HDFS consta de un único nodo maestro, el cual se encarga del seguimiento de archivos, la gestión del sistema de archivos y la administración de los metadatos de todos los datos almacenados. En concreto, el nodo maestro contiene información sobre el número de bloques, la ubicación del nodo de datos donde se almacenan los datos, la ubicación de las réplicas y otros detalles. El nodo maestro mantiene comunicación directa con el cliente.
Nodo de datos: Un nodo de datos almacena los datos en bloques. También conocido como nodo esclavo, almacena los datos en HDFS, que permite al cliente leerlos y escribirlos. Estos son demonios esclavos. Cada nodo de datos envía un mensaje de latido al nodo principal cada 3 segundos para indicar que está activo. Si el nodo principal no recibe un latido de un nodo de datos durante 2 minutos, lo considera inactivo e inicia el proceso de replicación de bloques en otro nodo de datos.
Nodo de nombre secundario: Su única función es gestionar los puntos de control de los metadatos del sistema de archivos que se encuentran en el nodo de nombre. También se le conoce como nodo de punto de control. Es el nodo auxiliar del nodo de nombre. El nodo de nombre secundario le indica al nodo de nombre que cree y envíe los archivos fsimage y editlog, tras lo cual el nodo de nombre secundario crea el archivo fsimage compactado. [ 36 ]
Rastreador de trabajos: El rastreador de trabajos recibe las solicitudes de ejecución de MapReduce del cliente. El rastreador de trabajos se comunica con el NameNode para conocer la ubicación de los datos que se utilizarán en el procesamiento. El NameNode responde con los metadatos de los datos de procesamiento necesarios.
Rastreador de tareas: Es el nodo esclavo del Rastreador de trabajos y toma la tarea de este último. También recibe código del Rastreador de trabajos. El Rastreador de tareas toma el código y lo aplica al archivo. El proceso de aplicación de dicho código al archivo se conoce como Mapeador. [ 37 ]
Un clúster de Hadoop consta nominalmente de un único namenode y un clúster de datanodes, aunque existen opciones de redundancia para el namenode debido a su criticidad. Cada datanode distribuye bloques de datos a través de la red mediante un protocolo de bloques específico de HDFS. El sistema de archivos utiliza sockets TCP/IP para la comunicación. Los clientes se comunican entre sí mediante llamadas a procedimientos remotos (RPC).
HDFS almacena archivos grandes (normalmente del orden de gigabytes a terabytes [ 38 ] ) en varias máquinas. Logra fiabilidad replicando los datos en múltiples hosts, por lo que, en teoría, no requiere almacenamiento RAID (Redundity Array of Independent Disks) en los hosts (aunque algunas configuraciones RAID siguen siendo útiles para aumentar el rendimiento de entrada/salida). Con el valor de replicación predeterminado, 3, los datos se almacenan en tres nodos: dos en el mismo rack y uno en uno diferente. Los nodos de datos pueden comunicarse entre sí para reequilibrar los datos, mover copias y mantener una alta replicación. HDFS no cumple totalmente con el estándar POSIX, ya que los requisitos de un sistema de archivos POSIX difieren de los objetivos de una aplicación Hadoop. La ventaja de no tener un sistema de archivos totalmente compatible con POSIX es un mayor rendimiento en el procesamiento de datos y compatibilidad con operaciones no POSIX, como Append [ 39 ] .
En mayo de 2012, se agregaron capacidades de alta disponibilidad a HDFS, [ 40 ] permitiendo que el servidor principal de metadatos llamado NameNode conmutara manualmente a una copia de seguridad. El proyecto también ha comenzado a desarrollar conmutaciones automáticas .
El sistema de archivos HDFS incluye un llamado namenode secundario , un término engañoso que algunos podrían interpretar erróneamente como un namenode de respaldo cuando el namenode principal se desconecta. De hecho, el namenode secundario se conecta regularmente con el namenode principal y crea instantáneas de la información de directorio de este último, que el sistema guarda en directorios locales o remotos. Estas imágenes de punto de control se pueden usar para reiniciar un namenode principal que haya fallado sin tener que reproducir todo el registro de acciones del sistema de archivos, y luego editar el registro para crear una estructura de directorio actualizada. Dado que el namenode es el único punto de almacenamiento y administración de metadatos, puede convertirse en un cuello de botella para admitir una gran cantidad de archivos, especialmente una gran cantidad de archivos pequeños. HDFS Federation, una nueva incorporación, busca abordar este problema en cierta medida al permitir múltiples espacios de nombres atendidos por namenodes separados. Además, existen algunos problemas en HDFS, como problemas con archivos pequeños, problemas de escalabilidad, un único punto de fallo (SPoF) y cuellos de botella en solicitudes de metadatos grandes. Una ventaja de usar HDFS es la conciencia de los datos entre el rastreador de trabajos y el rastreador de tareas. El rastreador de trabajos programa las tareas de mapeo o reducción en los rastreadores de tareas conociendo la ubicación de los datos. Por ejemplo: si el nodo A contiene los datos (a, b, c) y el nodo X contiene los datos (x, y, z), el rastreador de trabajos programará al nodo A para que realice tareas de mapeo o reducción en (a, b, c) y al nodo X para que realice tareas de mapeo o reducción en (x, y, z). Esto reduce la cantidad de tráfico que pasa por la red y evita la transferencia innecesaria de datos. Cuando se usa Hadoop con otros sistemas de archivos, esta ventaja no siempre está disponible. Esto puede tener un impacto significativo en los tiempos de finalización de los trabajos, como se ha demostrado con trabajos intensivos en datos. [ 41 ]
HDFS fue diseñado principalmente para archivos inmutables y puede no ser adecuado para sistemas que requieren operaciones de escritura concurrentes. [ 39 ]
HDFS se puede montar directamente con un sistema de archivos virtual FUSE ( Filesystem in Userspace ) en Linux y algunos otros sistemas Unix .
El acceso a archivos se puede lograr a través de la API nativa de Java, la API de Thrift (que genera un cliente en varios lenguajes, por ejemplo, C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa , Smalltalk y OCaml ), la interfaz de línea de comandos , la aplicación web HDFS-UI a través de HTTP o mediante bibliotecas de cliente de red de terceros. [ 42 ]
HDFS está diseñado para ser portátil en diversas plataformas de hardware y compatible con una variedad de sistemas operativos subyacentes. El diseño de HDFS introduce limitaciones de portabilidad que resultan en algunos cuellos de botella de rendimiento, ya que la implementación de Java no puede usar características que son exclusivas de la plataforma en la que se ejecuta HDFS. [ 43 ] Debido a su amplia integración en la infraestructura de nivel empresarial, la monitorización del rendimiento de HDFS a escala se ha convertido en un problema cada vez más importante. La monitorización del rendimiento de extremo a extremo requiere el seguimiento de métricas de los nodos de datos, los nodos de nombres y el sistema operativo subyacente. [ 44 ] Actualmente existen varias plataformas de monitorización para rastrear el rendimiento de HDFS, incluidas Hortonworks , Cloudera y Datadog .
Otros sistemas de archivos
Hadoop funciona directamente con cualquier sistema de archivos distribuido que pueda ser montado por el sistema operativo subyacente mediante una simple file://URL; sin embargo, esto tiene un inconveniente: la pérdida de la proximidad geográfica. Para reducir el tráfico de red, Hadoop necesita saber qué servidores están más cerca de los datos, información que pueden proporcionar los puentes de sistema de archivos específicos de Hadoop.
En mayo de 2011, la lista de sistemas de archivos compatibles incluidos con Apache Hadoop era la siguiente:
- HDFS: Sistema de archivos propio de Hadoop que reconoce el rack. [ 45 ] Está diseñado para escalar a decenas de petabytes de almacenamiento y se ejecuta sobre los sistemas de archivos de los sistemas operativos subyacentes .
- Apache Hadoop Ozone: Almacén de objetos compatible con HDFS, optimizado para miles de millones de archivos pequeños.
- Sistema de archivos FTP : Este sistema almacena todos sus datos en servidores FTP accesibles de forma remota.
- Almacenamiento de objetos Amazon S3 (Amazon Simple Storage Service): Está diseñado para clústeres alojados en la infraestructura de servidor bajo demanda de Amazon Elastic Compute Cloud . Este sistema de archivos no tiene en cuenta la ubicación en rack, ya que es completamente remoto.
- Sistema de archivos Windows Azure Storage Blobs (WASB): Se trata de una extensión de HDFS que permite a las distribuciones de Hadoop acceder a los datos almacenados en Azure Blob sin necesidad de trasladarlos permanentemente al clúster.
También se han desarrollado varios puentes de sistemas de archivos de terceros, ninguno de los cuales se encuentra actualmente en las distribuciones de Hadoop. Sin embargo, algunas distribuciones comerciales de Hadoop incluyen un sistema de archivos alternativo por defecto , concretamente IBM y MapR .
- En 2009, IBM habló sobre la posibilidad de ejecutar Hadoop sobre el IBM General Parallel File System . [ 46 ] El código fuente se publicó en octubre de 2009. [ 47 ]
- En abril de 2010, Parascale publicó el código fuente para ejecutar Hadoop en el sistema de archivos de Parascale. [ 48 ]
- En abril de 2010, Appistry lanzó un controlador de sistema de archivos Hadoop para su uso con su propio producto CloudIQ Storage. [ 49 ]
- En junio de 2010, HP habló sobre un controlador de sistema de archivos IBRIX Fusion que reconoce la ubicación . [ 50 ]
- En mayo de 2011, MapR Technologies Inc. anunció la disponibilidad de un sistema de archivos alternativo para Hadoop, MapR FS , que reemplazó el sistema de archivos HDFS por un sistema de archivos de lectura/escritura de acceso aleatorio completo.
JobTracker y TaskTracker: el motor MapReduce
Sobre los sistemas de archivos se encuentra el motor MapReduce, que consta de un JobTracker , al cual las aplicaciones cliente envían trabajos MapReduce. El JobTracker distribuye el trabajo a los nodos TaskTracker disponibles en el clúster, procurando mantener el trabajo lo más cerca posible de los datos. Con un sistema de archivos que reconoce el rack, el JobTracker sabe qué nodo contiene los datos y qué otras máquinas están cerca. Si el trabajo no puede alojarse en el nodo donde residen los datos, se da prioridad a los nodos en el mismo rack. Esto reduce el tráfico de red en la red troncal principal. Si un TaskTracker falla o agota el tiempo de espera, esa parte del trabajo se reprograma. El TaskTracker en cada nodo crea un proceso de máquina virtual Java (JVM) independiente para evitar que el propio TaskTracker falle si el trabajo en ejecución bloquea su JVM. El TaskTracker envía una señal de latido al JobTracker cada pocos minutos para comprobar su estado. El estado y la información del JobTracker y el TaskTracker se exponen a través de Jetty y se pueden visualizar desde un navegador web.
Las limitaciones conocidas de este enfoque son:
- La asignación de tareas a los TaskTrackers es muy sencilla. Cada TaskTracker dispone de un número determinado de ranuras disponibles (por ejemplo, "4 ranuras"). Cada tarea activa de mapeo o reducción ocupa una ranura. El Job Tracker asigna las tareas al rastreador más cercano a los datos que tenga una ranura disponible. No se tiene en cuenta la carga actual del sistema de la máquina asignada ni, por lo tanto, su disponibilidad real.
- Si un TaskTracker es muy lento, puede retrasar todo el trabajo de MapReduce , especialmente hacia el final, cuando todo puede terminar esperando a que finalice la tarea más lenta. Sin embargo, con la ejecución especulativa habilitada, una sola tarea puede ejecutarse en varios nodos esclavos.
Programación
Por defecto, Hadoop utiliza la planificación FIFO y, opcionalmente, 5 prioridades de planificación para programar trabajos desde una cola de trabajo. [ 51 ] En la versión 0.19, el planificador de trabajos se refactorizó fuera del JobTracker, al tiempo que se añadió la capacidad de utilizar un planificador alternativo (como el planificador Fair o el planificador Capacity , que se describen a continuación). [ 52 ]
Planificador justo
El planificador justo fue desarrollado por Facebook . [ 53 ] El objetivo del planificador justo es proporcionar tiempos de respuesta rápidos para trabajos pequeños y calidad de servicio (QoS) para trabajos de producción. El planificador justo tiene tres conceptos básicos. [ 54 ]
- Los trabajos se agrupan en lotes .
- A cada fondo se le asigna una participación mínima garantizada.
- El exceso de capacidad se reparte entre los distintos puestos de trabajo.
Por defecto, los trabajos no categorizados se agregan a un grupo predeterminado. Los grupos deben especificar el número mínimo de ranuras de mapeo, ranuras de reducción, así como un límite en el número de trabajos en ejecución.
Planificador de capacidad
El planificador de capacidad fue desarrollado por Yahoo. El planificador de capacidad admite varias características similares a las del planificador justo. [ 55 ]
- A las colas se les asigna una fracción de la capacidad total de recursos.
- Los recursos gratuitos se asignan a las colas que superan su capacidad total.
- Dentro de una cola, una tarea con un alto nivel de prioridad tiene acceso a los recursos de la cola.
Una vez que un trabajo está en ejecución, no hay interrupción .
Diferencias entre Hadoop 1 y Hadoop 2 (YARN)
La principal diferencia entre Hadoop 1 y Hadoop 2 radica en la incorporación de YARN (Yet Another Resource Negotiator), que reemplazó al motor MapReduce de la primera versión de Hadoop. YARN se encarga de asignar recursos a diversas aplicaciones de manera eficiente. Ejecuta dos demonios que realizan dos tareas distintas: el gestor de recursos , que realiza el seguimiento de los trabajos y la asignación de recursos a las aplicaciones, y el maestro de aplicaciones , que supervisa el progreso de la ejecución.
Diferencia entre Hadoop 2 y Hadoop 3
Hadoop 3 ofrece características importantes. Por ejemplo, mientras que en Hadoop 2 solo hay un namenode , Hadoop 3 permite tener varios namenodes, lo que resuelve el problema del punto único de fallo.
En Hadoop 3, existen contenedores que funcionan según el principio de Docker , lo que reduce el tiempo dedicado al desarrollo de aplicaciones.
Uno de los mayores cambios es que Hadoop 3 reduce la sobrecarga de almacenamiento mediante la codificación de borrado .
Además, Hadoop 3 permite el uso de hardware GPU dentro del clúster, lo cual es una ventaja muy sustancial para ejecutar algoritmos de aprendizaje profundo en un clúster Hadoop. [ 56 ]
Otras aplicaciones
HDFS no se limita a trabajos MapReduce. Puede utilizarse para otras aplicaciones, muchas de las cuales están en desarrollo en Apache. La lista incluye la base de datos HBase , el sistema de aprendizaje automático Apache Mahout y el almacén de datos Apache Hive . En teoría, Hadoop podría utilizarse para cualquier carga de trabajo orientada a procesamiento por lotes en lugar de en tiempo real, que sea muy intensiva en datos y se beneficie del procesamiento paralelo . También puede utilizarse para complementar un sistema en tiempo real, como la arquitectura Lambda , Apache Storm , Flink y Spark Streaming . [ 57 ]
Las aplicaciones comerciales de Hadoop incluyen: [ 58 ]
- Análisis de registros o flujos de clics
- Análisis de marketing
- Aprendizaje automático y minería de datos
- Procesamiento de imágenes
- Procesamiento de mensajes XML
- Rastreo web
- Trabajo de archivo para el cumplimiento normativo, incluyendo datos relacionales y tabulares.
Casos de uso destacados
El 19 de febrero de 2008, Yahoo! Inc. lanzó lo que afirmaron ser la aplicación de producción Hadoop más grande del mundo. El Yahoo! Search Webmap es una aplicación Hadoop que se ejecuta en un clúster Linux con más de 10 000 núcleos y produjo datos que se utilizaron en cada consulta de búsqueda web de Yahoo!. [ 59 ] Yahoo! cuenta con múltiples clústeres Hadoop y no utiliza sistemas de archivos HDFS ni trabajos MapReduce distribuidos en varios centros de datos. Cada nodo del clúster Hadoop inicializa la imagen Linux, incluida la distribución Hadoop. Se sabe que el trabajo que realizan los clústeres incluye los cálculos de índices para el motor de búsqueda de Yahoo!. En junio de 2009, Yahoo! puso a disposición de la comunidad de código abierto el código fuente de su versión Hadoop. [ 60 ]
En 2010, Facebook afirmó tener el clúster Hadoop más grande del mundo con 21 PB de almacenamiento. [ 61 ] En junio de 2012, anunciaron que los datos habían crecido a 100 PB [ 62 ] y más tarde ese mismo año anunciaron que los datos estaban creciendo aproximadamente a medio PB por día. [ 63 ]
A partir de 2013La adopción de Hadoop se había generalizado: más de la mitad de las empresas Fortune 50 utilizaban Hadoop. [ 64 ]
Papeles
Entre los artículos más influyentes sobre el nacimiento, el crecimiento y la gestión de Hadoop y el procesamiento de big data se encuentran: Jeffrey Dean, Sanjay Ghemawat (2004) MapReduce: Simplified Data Processing on Large Clusters , Google. Este artículo inspiró a Doug Cutting a desarrollar una implementación de código abierto del marco MapReduce. La llamó Hadoop, en honor al elefante de juguete de su hijo.
- Michael Franklin, Alon Halevy, David Maier (2005) De las bases de datos a los espacios de datos: una nueva abstracción para la gestión de la información . Los autores destacan la necesidad de que los sistemas de almacenamiento acepten todos los formatos de datos y proporcionen API para el acceso a los datos que evolucionen en función de la comprensión que el sistema de almacenamiento tenga de los datos.
- Fay Chang et al. (2006) Bigtable: Un sistema de almacenamiento distribuido para datos estructurados , Google.
- Robert Kallman et al. (2008) H-store: un sistema de procesamiento de transacciones de memoria principal distribuido y de alto rendimiento
Véase también
- Apache Accumulo : Bigtable seguro [ 65 ]
- Apache Cassandra , una base de datos orientada a columnas que admite el acceso desde Hadoop.
- Apache CouchDB , una base de datos que utiliza JSON para documentos, JavaScript para consultas MapReduce y HTTP estándar para una API.
- Big data
- computación intensiva en datos
- HPCC – Clúster de computación de alto rendimiento de LexisNexis Risk Solutions
- Hypertable : alternativa a HBase
- Sector/Esfera : Almacenamiento y procesamiento distribuido de código abierto
- Gestor de carga de trabajo de Slurm
Referencias
- ↑ "Versiones de Hadoop" . apache.org . Apache Software Foundation. Archivado del original el 28 de abril de 2019. Consultado el 28 de abril de 2019 .
- 1 2 "Apache Hadoop" . Archivado del original el 1 de junio de 2022. Recuperado el 27 de septiembre de 2022 .
- ↑ Judge, Peter (22 de octubre de 2012). "Doug Cutting: Big Data no es una burbuja" . silicon.co.uk . Consultado el 11 de marzo de 2018 .
- ↑ Woodie, Alex (12 de mayo de 2014). "Por qué Hadoop en IBM Power" . datanami.com . Datanami . Consultado el 11 de marzo de 2018 .
- ↑ Hemsoth, Nicole (15 de octubre de 2014). "Cray lanza Hadoop en el espacio aéreo de la computación de alto rendimiento" . hpcwire.com . Consultado el 11 de marzo de 2018 .
- ↑ "¡Bienvenido a Apache Hadoop!" . hadoop.apache.org . Archivado del original el 23 de septiembre de 2017 . Consultado el 25 de agosto de 2016 .
- ↑ "¿Qué es el sistema de archivos distribuidos de Hadoop (HDFS)?" . ibm.com . IBM . Consultado el 12 de abril de 2021 .
- ↑ Malak, Michael (19 de septiembre de 2014). "Localidad de datos: HPC vs. Hadoop vs. Spark" . datascienceassn.org . Data Science Association. Archivado del original el 10 de septiembre de 2017. Recuperado el 30 de octubre de 2014 .
- ↑ Wang, Yandong; Goldstone, Robin; Yu, Weikuan; Wang, Teng (octubre de 2014). "Caracterización y optimización de MapReduce residente en memoria en sistemas HPC". 2014 IEEE 28th International Parallel and Distributed Processing Symposium . IEEE. págs. 799–808 . doi : 10.1109/IPDPS.2014.87 . ISBN 978-1-4799-3800-1. S2CID 11157612 .
- ↑ "Recurso (API principal de Apache Hadoop 2.5.1)" . apache.org . Apache Software Foundation. 12 de septiembre de 2014. Archivado del original el 6 de octubre de 2014. Consultado el 30 de septiembre de 2014 .
- ↑ Murthy, Arun (15 de agosto de 2012). "Apache Hadoop YARN: conceptos y aplicaciones" . hortonworks.com . Hortonworks. Archivado del original el 11 de septiembre de 2017. Recuperado el 30 de septiembre de 2014 .
- ↑ "Continuuity recauda 10 millones de dólares en una ronda de financiación Serie A para impulsar el desarrollo de aplicaciones de Big Data dentro del ecosistema Hadoop" . finance.yahoo.com . Marketwired . 14 de noviembre de 2012. Archivado del original el 10 de septiembre de 2017. Consultado el 30 de octubre de 2014 .
- ↑ "Proyectos relacionados con Hadoop en" . Hadoop.apache.org. Archivado del original el 23 de septiembre de 2017. Recuperado el 17 de octubre de 2013 .
- ↑ Ciencia de datos y análisis de macrodatos: Descubrimiento, análisis, visualización y presentación de datos . John Wiley & Sons. 19 de diciembre de 2014. pág. 300. ISBN 9781118876220Consultado el 29 de enero de 2015 .
- ↑ "Uso de Hadoop streaming con Perl para map reduce" . Stack Overflow . 29 de julio de 2025. Consultado el 1 de agosto de 2025 .
- ↑ Cutting, Mike; Cafarella, Ben; Lorica, Doug (31 de marzo de 2016). "Los próximos 10 años de Apache Hadoop" . O'Reilly Media . Consultado el 12 de octubre de 2017 .
- ↑ Ghemawat, Sanjay; Gobioff, Howard; Leung, Shun-Tak (2003). "El sistema de archivos de Google" . págs. 20–43 . Archivado del original el 2 de diciembre de 2017. Recuperado el 5 de marzo de 2016 .
- ↑ Dean, Jeffrey; Ghemawat, Sanjay (2004). "MapReduce: Procesamiento de datos simplificado en grandes clústeres" (PDF) . págs. 137–150 .
- ↑ Cutting, Doug (28 de enero de 2006). "Solicitud de nuevas listas de correo: hadoop" . issues.apache.org .
El PMC de Lucene ha votado a favor de dividir parte de Nutch en un nuevo subproyecto llamado Hadoop.
- ↑ Vance, Ashlee (17 de marzo de 2009). "Hadoop, un programa de software libre, encuentra usos más allá de la búsqueda" . The New York Times . Archivado del original el 30 de agosto de 2011. Recuperado el 20 de enero de 2010 .
- ↑ Cutting, Doug (30 de marzo de 2006). " [ RESULTADO ] VOTACIÓN: agregar a Owen O'Malley como colaborador de Hadoop" . hadoop-common-dev (Lista de correo).
- ↑ "Índice de /dist/hadoop/core" . archive.apache.org . Consultado el 11 de diciembre de 2017 .
- ↑ "Quiénes somos" . hadoop.apache.org . Consultado el 11 de diciembre de 2017 .
- ↑ Borthakur, Dhruba (2006). "El sistema de archivos distribuidos de Hadoop: arquitectura y diseño" (PDF) . Repositorio de código de Apache Hadoop .
- ↑ "Versión 2.10.2 disponible" . hadoop.apache.org .
- ↑ "Versión 3.0.0 ya disponible" . hadoop.apache.org .
- ↑ "Versión 3.0.3 disponible" . hadoop.apache.org .
- ↑ "Versión 3.1.4 disponible" . hadoop.apache.org .
- ↑ "Versión 3.2.4 disponible" . hadoop.apache.org .
- ↑ "Versión 3.3.6 disponible" . hadoop.apache.org .
- ↑ "Versión 3.4.0 disponible" . hadoop.apache.org .
- ↑ Chouraria, Harsh (21 de octubre de 2012). "MR2 y YARN explicados brevemente" . Cloudera.com . Archivado del original el 22 de octubre de 2013. Consultado el 23 de octubre de 2013 .
- ↑ "Guía del usuario de HDFS" . Hadoop.apache.org . Consultado el 4 de septiembre de 2014 .
- ↑ "Ejecutando Hadoop en un sistema Ubuntu Linux (clúster multinodo)" .
- ↑ "Ejecutar Hadoop en Ubuntu Linux (Clúster de un solo nodo)" . Consultado el 6 de junio de 2013 .
- ↑ Balram. "Tutorial de Big Data Hadoop para principiantes" . www.gyansetu.in . Consultado el 11 de marzo de 2021 .
- ↑ "Apache Hadoop 2.7.5 – Guía del usuario de HDFS" . Archivado del original el 23 de octubre de 2019. Consultado el 19 de junio de 2020 .
- ↑ "Arquitectura HDFS" . Consultado el 1 de septiembre de 2013 .
- 1 2 Pessach, Yaniv (2013). Almacenamiento distribuido: conceptos, algoritmos e implementaciones . OL 25423189M .
- ↑ "La versión 2.0 permite la conmutación por error manual y están trabajando en la conmutación por error automática" . Hadoop.apache.org. Archivado del original el 1 de junio de 2022. Consultado el 30 de julio de 2013 .
- ↑ "Mejora del rendimiento de MapReduce mediante la ubicación de datos en clústeres Hadoop heterogéneos" (PDF) . Eng.auburn.ed. Abril de 2010.
- ↑ "Montaje de HDFS" . Archivado del original el 14 de mayo de 2014. Consultado el 5 de agosto de 2016 .
- ↑ Shafer, Jeffrey; Rixner, Scott; Cox, Alan. "El sistema de archivos distribuido Hadoop: equilibrio entre portabilidad y rendimiento" (PDF) . Universidad Rice . Consultado el 19 de septiembre de 2016 .
- ↑ Mouzakitis, Evan (21 de julio de 2016). "Cómo recopilar métricas de rendimiento de Hadoop" . Recuperado el 24 de octubre de 2016 .
- ↑ "Guía del usuario de HDFS : Información sobre Rack" . Hadoop.apache.org. Archivado del original el 13 de noviembre de 2013. Consultado el 17 de octubre de 2013 .
- ↑ "Análisis en la nube: ¿Realmente necesitamos reinventar la pila de almacenamiento?" (PDF) . IBM. Junio de 2009.
- ↑ "HADOOP-6330: Integración de la implementación del sistema de archivos paralelo general de IBM de la interfaz del sistema de archivos de Hadoop" . IBM. 23 de octubre de 2009.
- ↑ "HADOOP-6704: agregar soporte para el sistema de archivos Parascale" . Parascale. 14 de abril de 2010. Archivado del original el 16 de junio de 2012. Recuperado el 16 de enero de 2012 .
- ↑ "HDFS con CloudIQ Storage" . Appistry, Inc. 6 de julio de 2010. Archivado del original el 5 de abril de 2014. Consultado el 10 de diciembre de 2013 .
- ↑ "Alta disponibilidad de Hadoop" . HP. 9 de junio de 2010. Archivado del original el 22 de junio de 2010. Consultado el 6 de julio de 2010 .
- ↑ "Guía de comandos de Hadoop" . 9 de octubre de 2024. Archivado del original el 17 de agosto de 2011. Consultado el 17 de noviembre de 2024 .
- ↑ "Refactorizar el planificador fuera del JobTracker" . Hadoop Common . Apache Software Foundation . Consultado el 9 de junio de 2012 .
- ↑ Jones, M. Tim (6 de diciembre de 2011). "Programación en Hadoop" . ibm.com . IBM . Archivado del original el 5 de abril de 2014. Recuperado el 20 de noviembre de 2013 .
- ↑ "Documento de diseño del planificador justo de Hadoop" (PDF) . apache.org . Consultado el 12 de octubre de 2017 .
- ↑ "Guía de CapacityScheduler" . Hadoop.apache.org . Consultado el 31 de diciembre de 2015 .
- ↑ "Cómo Apache Hadoop 3 aporta valor añadido respecto a Apache Hadoop 2" . hortonworks.com . 7 de febrero de 2018. Archivado del original el 16 de noviembre de 2018. Consultado el 11 de junio de 2018 .
- ↑ Chintapalli, Sanket; Dagit, Derek; Evans, Bobby; Farivar, Reza; Graves, Thomas; Holderbaugh, Mark; Liu, Zhuo; Nusbaum, Kyle; Patil, Kishorkumar; Peng, Boyang Jerry; Poulosky, Paul (mayo de 2016). "Benchmarking Streaming Computation Engines: Storm, Flink and Spark Streaming". 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) . IEEE. págs. 1789–1792 . doi : 10.1109/IPDPSW.2016.138 . ISBN 978-1-5090-3682-0. S2CID 2180634 .
- ↑ ""Cómo más de 30 empresas utilizan Hadoop", en DBMS2 . Dbms2.com. 10 de octubre de 2009. Archivado del original el 17 de febrero de 2010. Consultado el 17 de octubre de 2013 .
- ↑ "Yahoo! lanza la aplicación de producción Hadoop más grande del mundo" . Yahoo . 19 de febrero de 2008. Archivado del original el 7 de marzo de 2016. Consultado el 31 de diciembre de 2015 .
- ↑ "Hadoop y computación distribuida en Yahoo!" . Yahoo!. 20 de abril de 2011. Archivado del original el 14 de agosto de 2011. Consultado el 17 de octubre de 2013 .
- ↑ "HDFS: ¡Facebook tiene el clúster Hadoop más grande del mundo!" . Hadoopblog.blogspot.com. 9 de mayo de 2010 . Consultado el 23 de mayo de 2012 .
- ↑ "Bajo el capó: fiabilidad del sistema de archivos distribuidos de Hadoop con Namenode y Avatarnode" . Facebook . Consultado el 13 de septiembre de 2012 .
- ↑ "Bajo el capó: Programación más eficiente de trabajos MapReduce con Corona" . Facebook . Consultado el 9 de noviembre de 2012 .
- ↑ "Altior's AltraSTAR – Hadoop Storage Accelerator and Optimizer ahora está certificado en CDH4 (distribución de Cloudera que incluye Apache Hadoop versión 4)" (Comunicado de prensa). Eatontown, NJ: Altior Inc. 18 de diciembre de 2012. Consultado el 30 de octubre de 2013 .
- ↑ "Manual de usuario de Apache Accumulo: Seguridad" . apache.org . Apache Software Foundation . Consultado el 3 de diciembre de 2014 .
Bibliografía
- Lam, Chuck (28 de julio de 2010). Hadoop en acción (1.ª ed.). Manning Publications . pág. 325. ISBN 978-1-935-18219-1.
- Venner, Jason (22 de junio de 2009). Pro Hadoop (1ª ed.). Presione . pag. 440.ISBN 978-1-430-21942-2Archivado del original el 5 de diciembre de 2010. Consultado el 3 de julio de 2009 .
- White, Tom (16 de junio de 2009). Hadoop: La guía definitiva (1.ª ed.). O'Reilly Media . pág. 524. ISBN 978-0-596-52197-4.
- Vohra, Deepak (octubre de 2016). Ecosistema práctico de Hadoop: una guía definitiva de marcos y herramientas relacionados con Hadoop (1.ª ed.). Apress . pág. 429. ISBN 978-1-4842-2199-0.
- Wiktorski, Tomasz (enero de 2019). Sistemas intensivos en datos . Cham, Suiza: Springer. ISBN 978-3-030-04603-3.
Enlaces externos
- Proyectos de la Apache Software Foundation
- Productos de big data
- Sistemas de archivos distribuidos
- Software gratuito para computación en la nube.
- Software libre programado en Java.
- Software de sistema gratuito
- Apache Hadoop
- Software que utiliza la licencia Apache.