domingo, 14 de mayo de 2023

Hadoop: ¿Qué es? ¿Quién lo utiliza?

 Hadoop 

El software Apache Hadoop es un framework de código abierto que permite usar modelos sencillos de programación para almacenar y procesar de forma distribuida grandes conjuntos de datos de distintos clústeres de ordenadores. Hadoop se ha diseñado para facilitar el escalado vertical de un solo ordenador a miles de ordenadores agrupados en clústeres, cada uno de ellos con funciones locales de computación y almacenamiento. Gracias a ese diseño, Hadoop puede almacenar y procesar conjuntos de datos de muchos gigabytes o incluso petabytes de manera eficiente.

Ventajas de usar Hadoop

  • En el ecosistema de Hadoop, por mucho que los nodos, discos o bastidores fallen al ejecutar tareas en clústeres grandes, los recuperas fácilmente, ya que los datos se replican en otras partes de los clústeres.
  • Para mantener los costes a raya, el precio por terabyte de datos almacenados es menor en Hadoop que en otras plataformas. No malgastes miles ni decenas de miles de dólares en espacio de hardware. Hadoop ofrece las funciones de computación y almacenamiento en un hardware básico estándar más asequible, apenas unos cientos de dólares por terabyte.
  • Hadoop tiene el respaldo de comunidades de todo el mundo cuyo afán común es presentar funciones y conceptos nuevos con más rapidez y eficacia que los equipos internos de las empresas que trabajan en soluciones propias. La ventaja de estas comunidades de software libre es el potencial colectivo para aportar más ideas, desarrollarlas más rápido y solucionar los problemas en cuanto aparecen. Todo ello se traduce en un tiempo de lanzamiento más corto.

Funciones de Apache Hadoop

  • Hadoop permite que empresas y organizaciones de toda clase hagan investigaciones o analíticas y procesen los datos de producción, es decir, tareas que exigen procesar terabytes o petabytes de Big Data, a veces en paralelo, y almacenar conjuntos de datos diversos.
  • Las empresas de innumerables sectores (entre otros, tecnología, educación, sanidad y servicios financieros) confían en Hadoop para ejecutar tareas que tienen en común la gran diversidad, volumen y velocidad de los datos estructurados y sin estructurar que emplean.
  • Los ecosistemas de Hadoop también son fundamentales para facilitar el desarrollo de aplicaciones de inteligencia artificial (IA) y aprendizaje automático.
  • Por lo general, las empresas prefieren ejecutar los clústeres de Hadoop en recursos de nubes públicas, privadas o híbridas antes que en hardware on‑premise porque no solo se benefician de más flexibilidad y disponibilidad, sino que también mantienen los costes bajo control. Muchos proveedores de soluciones en la nube ofrecen servicios totalmente gestionados para Hadoop, como Dataproc de Google Cloud. Gracias a este tipo de servicios empaquetados previamente para Hadoop nativo de la nube, las operaciones que antes llevaban horas o días tardan apenas unos segundos o minutos. Además, las empresas solo pagan por los recursos que se utilizan.




¿Quien utiliza Apache Hadoop?

Según ChatGPT(2023): 

Facebook: 

utiliza Hadoop para almacenar y procesar petabytes de datos generados por sus usuarios.

Yahoo: 

utiliza Hadoop para indexar y analizar su gran cantidad de datos.

Twitter: 

utiliza Hadoop para almacenar y procesar grandes cantidades de datos generados por sus usuarios.

Amazon: 

utiliza Hadoop para analizar y procesar grandes volúmenes de datos de ventas y comportamiento de los clientes.

IBM: 

utiliza Hadoop para ofrecer soluciones de big data a sus clientes.


Opinión personal


Sabemos que el manejo del Big Data hoy en día es una tarea fundamental y de bastante complejidad para llevar a cabo y para solventar algunas problemáticas nacen herramientas como Apache Hadoop. Una herramienta flexible y confiable para el manejo de Big Data garantizando que no habrá perdida de datos. Lo mejor de esto es que es gratis y es mantenida por la comunidad, significa que se puede encontrar mucha ayuda en Internet en foros, páginas, vídeos,  etc. Incluso uno mismo puede hacer ciertas modificaciones necesarias para el trabajo que sea que se esté realizando. Algo que destaca de este programa es su almacenamiento distribuido y el procesamiento distribuido utilizando hardware básico, al utilizar hardware básico significa menos que el precio de uso va a ser más bajo y tener un servicio de alta calidad a precio bajo es una buena noticia. 

En cuanto a su configuración y seguridad, la empresa tras la herramienta presume de ser altamente configurable y cuneta con varios roles de inicio de sesión predeterminados para mantener la integridad de los datos no permitiendo que todo el mundo puede acceder a todos los clústeres o accediendo con ciertos permisos para que no se pueda mover o modificar cierta información sin el consentimiento de altos directivos.

En cuanto a su arquitectura, la podemos ver ilustrada en el siguiente diagrama: 








En el sitio oficial de Apache Hadoop, se hace una advertencia sobre el uso de recursos, 

                https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html
El Programador es responsable de asignar recursos a las diversas aplicaciones en ejecución sujetas a restricciones familiares de capacidades, colas, etc. El Programador es un programador puro en el sentido de que no realiza monitoreo ni seguimiento del estado de la aplicación. Además, no ofrece garantías sobre el reinicio de tareas fallidas debido a fallas en la aplicación o fallas en el hardware. El Programador realiza su función de programación en función de los requisitos de recursos de las aplicaciones; lo hace basándose en la noción abstracta de un Contenedor de recursos que incorpora elementos como memoria, cpu, disco, red, etc.

El programador tiene una política conectable que es responsable de dividir los recursos del clúster entre las diversas colas, aplicaciones, etc. Los programadores actuales, como CapacityScheduler y FairScheduler , serían algunos ejemplos de complementos.

ApplicationsManager es responsable de aceptar envíos de trabajos, negociar el primer contenedor para ejecutar el ApplicationMaster específico de la aplicación y proporciona el servicio para reiniciar el contenedor ApplicationMaster en caso de falla. El ApplicationMaster por aplicación tiene la responsabilidad de negociar los contenedores de recursos apropiados desde el Programador, rastrear su estado y monitorear el progreso.























No hay comentarios:

Publicar un comentario

Cronograma y presupuesto del proyecto

 https://docs.google.com/document/d/1iQG-5w2r5v4mHhCO_-dgGm4z94WS28GjiwvgJw5pygk/edit